从数组可观察到在TypeScript中不起作用

马里尼奥·布兰德奥(MarinhoBrandão)

正如文档在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类似scanObservable序列的运算符,因为标准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)。

谢谢!

保罗·布特斯

有多种解决方案:

1-导入特定元素

在您的示例中,您只是导入Observable,但是,您使用该.from()方法来从数组创建可观察对象。因此,.from()如果要使用方法,则必须导入该方法。对于reduce操作员而言,这是相同的

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/from';
import 'rxjs/add/operator/reduce';

2-导入所有运算符和方法

Observable是从中引入的rxjs/Rx,因此以这种方式将其拉出将自动为您提供所有运算符和方法。

import { Observable } from 'rxjs/Rx';

有什么区别 ?

这两种方法之间的最大区别是,您不会使用第一种方法立即导入所有运算符。当您在生产模式下工作时,此功能很有用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章