正如文档在https://github.com/ReactiveX/rxjs/blob/master/doc/observable.md中所述,我正在尝试从数组创建可观察对象:
import {Observable} from 'rxjs/Observable';
let theList = Observable.from(sites);
但我得到:
TypeError: Observable_1.Observable.from is not a function
我的目标是使用类似Observable序列reduce
或类似scan
Observable序列的运算符,因为标准Observable
似乎不支持该运算符,如下所示:
this.theList = new Observable(observer => {
// this works
observer.next(sites);
});
this.sub = this.theList.reduce(function() {
// this is never called
return acc;
}).subscribe(l => {
// this is never called
this.finalList = l;
});
可以在以下Plnkr中找到该代码:http ://plnkr.co/edit/cKEqtp (src/app.ts
)。
谢谢!
有多种解决方案:
在您的示例中,您只是导入Observable
,但是,您使用该.from()
方法来从数组创建可观察对象。因此,.from()
如果要使用该方法,则必须导入该方法。对于reduce
操作员而言,这是相同的。
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/from';
import 'rxjs/add/operator/reduce';
Observable
是从中引入的rxjs/Rx
,因此以这种方式将其拉出将自动为您提供所有运算符和方法。
import { Observable } from 'rxjs/Rx';
这两种方法之间的最大区别是,您不会使用第一种方法立即导入所有运算符。当您在生产模式下工作时,此功能很有用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句