我有导入可观察对象的问题。在我的项目中的作用。我的Intellij能看到一切。在我的代码中我有:

import {Observable} from 'rxjs/Observable';

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

return Observable.of(res);

什么好主意吗?


当前回答

对我来说(Angular 5 & RxJS 5),自动完成导入建议:

import { Observable } from '../../../../../node_modules/rxjs/Observable';

而to应该是(所有来自,of, E.C.T的静态操作符都工作正常:

import { Observable } from 'rxjs/Observable';

其他回答

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

import {Observable} from 'rxjs/Rx';

我今天遇到了这个问题。我使用systemjs加载依赖项。

我像这样加载Rxjs:

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

使用下面的语句代替使用路径:

var map = {
...
'rxjs':                       'node_modules/rxjs',
...
}

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

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

对于Angular 5+:

import {Observable} from 'rxjs/Observable';观察者包应该匹配导入,并从'rxjs/ observer '导入{observer};如果你用的是观察器的话

从'rxjs'导入{<something>};是一个巨大的进口,所以最好避免它。

不管出于什么原因,补丁对我来说不起作用,所以我不得不求助于以下方法:

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

// ...

return of(res)
// "rxjs": "^5.5.10"
import { of } from 'rxjs/observable/of';

.... 
return of(res)