2017-02-15 53 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