如何取消订阅 RxJS 5 可观察对象?

How to unsubscribe from an RxJS 5 observable?

我一直在使用这个模式:

func myObservable() Observable<boolean> {
    ...
}

func myFunc() {
    myObservable().subscribe((cond: boolean) => {
        if (cond) {
            // How do I unsubscribe here?
        }
    });
}

但是我看不到任何取消订阅的方法,因此可能会造成内存泄漏。

我问的原因是因为 Angular 2's HTTP client 使用相同的模式 - 虽然我相信它会以某种方式自动取消订阅,我也想这样做。

你应该这样做:

func myFunc() {
   var subscription = myObservable().subscribe((cond: boolean) => {
       if (cond) {
          // How do I unsubscribe here?
           subscription.unsubscribe()
       }
   });
}