我以爲我明白combineLatest,但給我的輸出 - 我不理解它。我認爲,當所有可觀測量發出時,所有可觀測量都會發出最後的值。RxJS combine最大的困惑
(注:我只是做取(5)來限制我的控制檯輸出)
所以,對於這個簡單的例子 -
const int1$ = Rx.Observable.interval(1000).take(5)
const int2$ = Rx.Observable.interval(500).take(5)
const int3$ = Rx.Observable.interval(3000).take(5)
const all$ = Rx.Observable.combineLatest(
int1$, int2$, int3$
)
all$.subscribe(latestValues => {
const [int1, int2, int3] = latestValues;
console.log(`
interval one @ 1000 ${int1},
interval two @ 500 ${int2},
interval three @ 3000 ${int3}
`)
})
我想看到
"
interval one @ 1000 0,
interval two @ 500 1,
interval three @ 3000 0
"
"
interval one @ 1000 1,
interval two @ 500 2,
interval three @ 3000 0
"
"
interval one @ 1000 1,
interval two @ 500 3,
interval three @ 3000 1
"
"
interval one @ 1000 2,
interval two @ 500 4,
interval three @ 3000 1
但我越來越
"
interval one @ 1000 2,
interval two @ 500 4,
interval three @ 3000 0
"
"
interval one @ 1000 3,
interval two @ 500 4,
interval three @ 3000 0
"
"
interval one @ 1000 4,
interval two @ 500 4,
interval three @ 3000 0
"
"
interval one @ 1000 4,
interval two @ 500 4,
interval three @ 3000 1
有些困惑。你對我爲什麼沒有看到我期望的東西的想法會很棒!
你有jsbin嗎?這將有助於玩 – user3743222