【发布时间】:2017-01-28 22:02:32
【问题描述】:
我想使用takeUntil 运算符完成一个不能自然完成的内部流,如下所示:
outerObservable
.mergeMap(() => {
innerObservable
.takeUntil(stopObservable$)
});
这行得通,内部流按预期完成,但我希望外部流在停止信号之后返回最后一个值。即使经过大量的谷歌搜索,我仍然不知道如何。
编辑:
我编写了一个似乎可以解决问题的运算符,但由于我知道有更好的方法或者我完全误解了一些东西,所以让问题悬而未决。
function takeUntilThen(notifier, oneLastValue) {
return Rx.Observable.create(subscriber => {
var source = this;
notifier.subscribe(() => {
subscriber.next(oneLastValue);
subscriber.complete()
});
return source.subscribe(value => {
subscriber.next(value);
},
err => subscriber.error(err),
() => subscriber.complete());
});
}
【问题讨论】:
-
小心,你的运营商泄露了它的通知订阅!
-
谢谢,我会调查一下 - 当我弄清楚它的意思时:-)
标签: javascript rxjs system.reactive redux-observable