Javascript RxJS组合最混乱
我以为我理解CombineRelatest,但考虑到我的输出,我不理解它。我认为,使用CombineTest时,所有的可观测值都会在任何可观测值发出时发出最后的值 (注意:我只是做了(5)步来限制我的控制台输出) 因此,给出这个小例子-Javascript RxJS组合最混乱,javascript,reactive-programming,rxjs5,Javascript,Reactive Programming,Rxjs5,我以为我理解CombineRelatest,但考虑到我的输出,我不理解它。我认为,使用CombineTest时,所有的可观测值都会在任何可观测值发出时发出最后的值 (注意:我只是做了(5)步来限制我的控制台输出) 因此,给出这个小例子- const int1$ = Rx.Observable.interval(1000).take(5) const int2$ = Rx.Observable.interval(500).take(5) const int3$ = Rx.Observable.in
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
有点困惑。你关于为什么我没有看到我所期望的东西的想法会很棒
每当任何源观测值发射项目时,CombineTest发射项目
(只要每个源观测值至少发射了一项)您有jsbin吗?将有助于玩(只要每个源观测值至少发射了一个项目)
const int1$ = Rx.Observable.timer(0,1000).take(5)
const int2$ = Rx.Observable.timer(0,500).take(5)
const int3$ = Rx.Observable.timer(0,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}
`)
})