我很奇怪地坚持以下几点:
startingArray$
startingArray
发出startingArray
之后推送到additions$
- 让我们称之为startingArrayPlusAdditions$
startingArrayPlusAdditions$
随着更多项目的发射而持续增长? additions$
发出时,startingArray$
都会发出,但state
最初发出时不会发出答案 0 :(得分:2)
我不确定我是否了解您的所有问题,但这是一个提案:
const { Observable } = Rx;
const startingArray$ = Observable.of([1, 2, 3]);
const additions$ = Observable.from([4, 5, 6, 7, 8]);
const startingArrayPlusAdditions$ = startingArray$
.combineLatest(additions$)
.scan((acc, current) => {
const [startingArray, addition] = current;
if (acc === null) {
return [...startingArray, addition];
} else {
acc.push(addition);
return acc;
}
}, null)
.do(console.log)
.subscribe();
输出结果为:
[1, 2, 3, 4]
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 4, 5, 6, 7, 8]
就像你问的那样:
startingArrayPlusAdditions $应该在每次添加$ emits时发出,但是当startingArray $最初发出时它不应该发出
这是一个有效的普朗克:https://plnkr.co/edit/rKXLJrmA7mSzpQgoemlD?p=preview