作为RxJS的新手,我经常创建一个主题,它在未来保持价值,但最初是undefined
。它只能在第一次时为undefined
。我目前使用filter
来跳过undefined
值,但这相当麻烦,因为我在所有地方都这样做,因为我只需要一次。(也许我在这里做错了什么?)只有通过onNext
获得第一个值后,我才能以某种方式订阅mySubject
吗
var mySubject = new Rx.BehaviorSubject(undefined);
mySubject.filter(function(value) {
return value !== undefined;
}).subscribe(function(value) {
// do something with the value
});
发布于 2015-02-04 16:58:27
使用new Rx.ReplaySubject(1)
而不是BehaviorSubject
。
发布于 2017-07-03 19:16:35
正如Will所提到的,您应该能够通过使用跳过操作符跳过第一个值:
var mySubject = new Rx.BehaviorSubject(undefined);
mySubject.pipe(skip(1)).subscribe(function(value) {
// do something with the value
});
发布于 2018-03-23 19:35:37
mySubject.pipe( skipWhile( v => !v ) );
https://stackoverflow.com/questions/28314882
复制相似问题