当它发出一定的值时取消订阅observable

当它发出一定的值时取消订阅observable

问题描述:

当我收到某个值时,如何取消订阅可观察值?当它发出一定的值时取消订阅observable

像这样:

let tempSub: Subscription = this.observable$.subscribe(value => { 
    if (value === 'somethingSpecific') { 
     tempSub.unsubscribe(); 
     // doesn't work 
     //because when this is reached tempsub is undefined 
    } 
    }); 
+1

http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-takeWhile – cartant

可以使用takeWhile操作

source.takeWhile(val => val === 'somethingSpecific'); 

this.observable$ 
.takeWhile(val => val === 'somethingSpecific') 
.subscribe(value => { 
// .. do something 
}); 

不要忘了将其导入

这里是考试ple https://jsfiddle.net/btroncone/yakd4jgc/