我需要到Observable<any[]>
。我目前有一个看起来像这样的观察点:
const eventsWatcher = new Observable(observer => {
try {
this.socket.on('calendar-events', data => {
observer.next(data);
});
}
catch (err) {
observer.error(err);
}
})
基本上我需要从这个Observable中获取值并创建一个新值,它是现有observable发出的值的数组。
我试过
const arr = [];
const eventsWatcher = new Observable(observer => {
try {
this.socket.on('calendar-events', data => {
observer.next(data);
});
}
catch (err) {
observer.error(err);
}
}).subscribe(data => {
arr.push(data);
});
return Observable.from(arr);
但是返回ArrayObservable
而不是Observable<any[]>
。
很抱歉,如果我没有这么好描述,但rxjs真的很难。
答案 0 :(得分:2)
使用扫描运算符:
const yourNewObservable = eventsWatcher
.scan((acc, newItem) => acc.concat(newItem), []);