当它发出一定的值时取消订阅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
}
});
答
可以使用takeWhile
操作
source.takeWhile(val => val === 'somethingSpecific');
或
this.observable$
.takeWhile(val => val === 'somethingSpecific')
.subscribe(value => {
// .. do something
});
不要忘了将其导入
http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-takeWhile – cartant