我想以类似于BehaviorSubject
的方式组合几个可重放的不完全可观测值,它们保存最后一个值(在本例中是zip
),但是当任何源可观测值发出时,结果可观测值就会发出一个值。
这是小提琴
const foo$ = new Rx.BehaviorSubject('foo');
const bar$ = new Rx.BehaviorSubject('bar');
setTimeout(() => foo$.next('foo 1'), 1000)
setTimeout(() => bar$.next('bar 1'), 2000)
const foobar$ = Rx.Observable.zip(foo$, bar$);
foobar$.subscribe(([foo, bar]) => console.log({ foo, bar }));
由于zip
操作符的工作方式,上面的代码将输出:
{foo:"foo",bar:"bar"} {foo:"foo 1",bar:"bar 1"}
而我希望它是
{foo:"foo",bar:"bar"} {foo:"foo 1",bar:"bar"} {foo:"foo 1",bar:"bar 1"}
这是如何做到的呢?
发布于 2017-02-15 11:46:14
使用combineLatest()
操作符:
const foobar$ = Rx.Observable.combineLatest(foo$, bar$);
https://stackoverflow.com/questions/42248209
复制相似问题