我一直在使用这种模式:
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() } }); }