2017-02-15 50 views
1

我想以同样的方式像zip这是否(在这种情况下BehaviorSubject)举行的最后一个值几个可玩性不完整的观测相结合,反而使所产生的可观察到的发出值时任源可观测量发射。邮编可玩性RxJS可观测量

这里的a fiddle

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 1”,bar:“bar 1”}

虽然我想这是

{富: “富”,巴: “棒”}

{富: “富1”,巴: “棒”}

{FOO :“foo 1”,bar:“bar 1”}

这怎么办?

回答

3

使用combineLatest()操作:

const foobar$ = Rx.Observable.combineLatest(foo$, bar$); 

您更新演示:https://jsfiddle.net/d1wo1usx/

+0

很好,谢谢。我的不好,出于某种原因,我认为最好的作品只能在完成的观察对象上进行,并且如果它是真的,就没有机会尝试。 – estus