如果我有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]
,我该如何实现呢?
答案 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 ] ) );