繁体   English   中英

如何创建一个可观察的 <any[]> ?

[英]How to create an Observable<any[]>?

我需要进入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确实很难。

使用扫描运算符:

const yourNewObservable = eventsWatcher
    .scan((acc, newItem) => acc.concat(newItem), []);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM