将可观察的数组值累积到单个最终数组

时间:2018-03-27 16:51:27

标签: javascript rxjs observable

如果我有2个可观察数组,x$y$

let x = new BehaviorSubject([1,2,3])
let y = new BehaviorSubject([4,5,6])
let x$ = x.asObservable();
let y$ = y.asObservable();

我想积累成一个单独的数组,这样当订阅时会发出[1,2,3,4,5,6],我该如何实现呢?

2 个答案:

答案 0 :(得分:1)

如果这很简单,您可以使用scan()来收集所有值。它甚至不是什么来源,所以你可以合并两个Observable:

Observable.merge(x, y)
  .scan((acc, arr) => [...acc, ...arr], [])
  .subscribe();

答案 1 :(得分:1)

Observable.combineLatest( x, y )
.map( ( [ x, y ] ) => ( [ ...x, ...y ] ) );