1 订阅

  1. 通过订阅
  2. import { Observable } from 'rxjs'
  3. getRxjsData(){
  4. return new Observable((observer)=>{
  5. setTimeout(()=>{
  6. var username:string='张三'
  7. observer.next(username)
  8. //通过next触发 相对于promise重的resolve
  9. },2000)
  10. })
  11. }
  12. 使用时,引入该函数所在的服务或其他
  13. import { RequestService } from '../../service/request.service'
  14. constructor(public request:RequestService) {
  15. let rxjsdata = this.request.getRxjsData();
  16. rxjsdata.subscribe((data)=>{
  17. //通过订阅方法
  18. console.log(data);
  19. })
  20. }

2 订阅的取消

  1. constructor(public request:RequestService) {
  2. let rxjsdata = this.request.getRxjsData();
  3. let d = rxjsdata.subscribe((data)=>{
  4. //通过订阅方法
  5. console.log(data);
  6. })
  7. setTimeout(()=>{
  8. d.unsubscribe(); /* 取消订阅,可以撤回*/
  9. },1000)
  10. }
  11. 事件将不会触发

3 订阅的多次执行

 getRxjsIntervalData(){
     let count:number = 0
     return new Observable<any>((observable)=>{
       setInterval(()=>{
         count++
         let username = '张三--rxjs--intetval'+" "+count
         observable.next(username)
       },2000)
     })
  }





  let streemInterval = this.request.getRxjsIntervalData()
      streemInterval.subscribe((dataa=>{
        console.log(dataa);

      }))