【发布时间】:2019-04-21 07:46:38
【问题描述】:
我对 Rxjs/Observables 很陌生,它真的开始困扰我。我使用了一个 Observable 来遍历方法,并确保在每个方法完成后它们被一个一个地调用(使用 next() 函数)。那么,在可能说所有 5 个 next 呼叫中的第二个与某些数据有问题之后,您如何取消整个订阅?下面是一个简化的示例代码,供您了解情况。
我正在导入以下数据:
import { Observable } from 'rxjs';
在构造函数中,我准备了我的 Observable:
this.myObservable = new Observable( observer => {
observer.next( this.funcOne(observer) );
observer.next( this.funcTwo(observer) );
observer.next( this.funcThr(observer) );
observer.next( this.funcFor(observer) );
observer.complete();
} );
并且(下)使用“subscribe()”方法,我开始订阅:
this.subscription = this.myObservable.subscribe( x => {
if( x === -1 )
this.subscription.unsubscribe();
// I was thinking to unsubscribe here, but that doesn't work.
// I get a message saying: Cannot read property 'unsubscribe' of undefined
else
this.doSomethingElse(x)
} )
如何通过取消或退订订阅来完全停止一切?希望我的问题很清楚,感谢您抽出宝贵时间阅读我的挫败感。
【问题讨论】:
标签: javascript typescript rxjs observable subscription