如何取消Angular rxjs Observable的订阅

168 阅读1分钟

源代码:

ngOnInit(): void {
     const ob = new Observable(function subscribe(observer) {
      // 追踪 interval 资源
      const intervalID = setInterval(() => {
        observer.next('hi');
      }, 1000);
      // 提供取消和清理 interval 资源的方法
      return function jerryunsubscribe() {
        debugger;
        clearInterval(intervalID);
      };
    });

    const jerry = ob.subscribe((x) => console.log(x));
    jerry.unsubscribe();
    
  }

在Observable的subscribe方法执行时,会进行取消即unsubscribe的注册:



注册到这个私有字段了:

直接call 之前调用subscribe方法返回的对象的unsubscribe方法即可取消订阅:


要获取更多Jerry的原创文章,请关注公众号"汪子熙":