望着definition的combineLatest
combine在Rxjs 5中的最大行爲?
結合多種觀測量,以創建一個可觀察其值 從它的每個輸入觀測值的最新值來計算。
或
每當任何輸入可觀察發出的值,它使用從所有輸入的最新值計算出一個公式 ,然後發射的 ,式輸出。
,很明顯地看到,在時間/發射的每一個時期,在這個發射的結果是最新排放的組合。
如果是這樣,看着這個代碼
const obs1 = Rx.Observable.of(1, 2, 3, 4, 5);
const obs2 = Rx.Observable.of('a', 'b', 'c')
const obs3 = obs2.combineLatest(obs1, (a, b) => a+b);
const subscribe = obs3.subscribe(latestValues => {
console.log(latestValues );
});
結果是:
c1,c2,c3,c4,c5
當我改變
obs2.combineLatest(obs1..
到
obs1.combineLatest(obs2..
- 我得到5a,5b,5c
問:
的文檔沒有指定有關調用的順序有什麼區別(如果有的話 - 爲什麼我得到不同的結果)?爲什麼我看不到其他來源的其他組合?似乎有一個來源正在取其最後一個值,然後只有 - 將它加入來自其他來源的每個值。
好像這是什麼實際發生的事情:
[other source]---a---b---c------------------------
[first source]-------------1----2-----3-----4----5
[result]-------------------c1---c2----c3----c4---c5
當我換的順序(OBS1 < - > OBS2):
[first source]-----1--2---3--4--5----------------
[other source]---------------------a-----b------c
[result]---------------------------5a----5b-----5c
這是怎麼回事?爲什麼一個流必須完成才能啓動連接?
爲什麼我沒有看到這樣的事情(或變化):
[first source]-----1-----2--------3-------4------5---
[other source]---------a-----b------c----------------
[result]---------------1a------2b------3b---4c-------5c
那麼rx4會發出不同的結果? –
我認爲RxJS 4默認使用所謂的* immediate * scheduler,所以結果很可能與rxJS 5不同。 – martin