Observable.of不是一个函数

我在我的项目中导入Observable.of函数有问题。 我Intellij看到的一切。 在我的代码中,我有:

 import {Observable} from 'rxjs/Observable'; 

在我的代码中,我使用它:

 return Observable.of(res); 

有任何想法吗?

其实我有import搞砸了。 在最新版本的RxJS中,我们可以像这样导入它:

 import 'rxjs/add/observable/of'; 

虽然这听起来很奇怪,但对我来说,重要的是import {Observable} from 'rxjs/Observable '的导入pathimport {Observable} from 'rxjs/Observable大写'O'。 如果我从rxjs/observable导入Observable,那么带有observable_1.Observable.of is not a function的错误信息observable_1.Observable.of is not a function 。 奇怪,但我希望它可以帮助别人。

只是补充一点,

如果你使用的很多,那么你可以导入所有使用

 import 'rxjs/Rx'; 

正如@Thierry Templier所提到的那样。 但是我认为如果你使用有限的操作符,那么你应该导入单个操作符

 import 'rxjs/add/operator/filter'; import 'rxjs/add/operator/mergeMap'; import 'rxjs/add/observable/of'; 

正如@uksz所提到的那样。

因为'rxjs / Rx'会导入所有的性能肯定会降低的Rx组件。

对照

你也可以这样导入所有的操作符:

 import {Observable} from 'rxjs/Rx'; 

由于任何原因补丁不适合我,所以我不得不采用这种方法:

 import { of } from 'rxjs/observable/of' // ... return of(res) 

我今天有这个问题。 我使用systemjs来加载依赖关系。

我是这样加载Rxjs的:

 ... paths: { "rxjs/*": "node_modules/rxjs/bundles/Rx.umd.min.js" }, ... 

使用这个来代替使用path:

 var map = { ... 'rxjs': 'node_modules/rxjs', ... } var packages = { ... 'rxjs': { main: 'bundles/Rx.umd.min.js', defaultExtension: 'js' } ... } 

这个systemjs加载库的方式的一点点改变解决了我的问题。

我愚蠢的错误是,我忘记添加/add需要观察。

是:

 import { Observable } from 'rxjs/Observable'; import 'rxjs/observable/of'; 

这在视觉上看起来OK,因为rxjs/observable/of文件实际上是存在的。

应该:

 import { Observable } from 'rxjs/Observable'; import 'rxjs/add/observable/of';