【发布时间】:2018-08-08 16:52:19
【问题描述】:
const s$ = new Rx.Observable.interval(100).take(4);
const s1$ = s$.map(v => 's1:' + v);
const s2$ = s$.map(v => 's2:' + v);
Rx.Observable.combineLatest(s1$, s2$)
.subscribe((value) => {
console.log(value);
})
我想得到这样的输出:
s1: 1, s2: 1
s1: 2, s2: 2
s1: 3, s2: 3
但实际输出:
"s1:0,s2:0"
"s1:1,s2:0"
"s1:1,s2:1"
"s1:2,s2:1"
"s1:2,s2:2"
"s1:3,s2:2"
"s1:3,s2:3"
我该怎么做?
【问题讨论】:
-
可能
zip是您应该使用的运算符,而不是combine latest。那么你从 0 而不是从 1 开始的脂肪是interval工作方式的本质。如果你想从 1 开始,那么要么skip第一次发射,要么map加 1。 -
谢谢老兄!你让我开心
标签: rxjs