我有导入可观察对象的问题。在我的项目中的作用。我的Intellij能看到一切。在我的代码中我有:
import {Observable} from 'rxjs/Observable';
在我的代码中,我这样使用它:
return Observable.of(res);
什么好主意吗?
我有导入可观察对象的问题。在我的项目中的作用。我的Intellij能看到一切。在我的代码中我有:
import {Observable} from 'rxjs/Observable';
在我的代码中,我这样使用它:
return Observable.of(res);
什么好主意吗?
当前回答
这应该可以正常工作,试试吧。
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
其他回答
// "rxjs": "^5.5.10"
import { of } from 'rxjs/observable/of';
....
return of(res)
补充一点,
如果你正在使用很多,那么你可以导入所有使用
import 'rxjs/Rx';
正如@Thierry Templier所提到的。但我认为,如果你使用的是有限算子,那么你应该导入单个算子,比如
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/observable/of';
正如@uksz提到的。
因为'rxjs/Rx'将导入所有的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 / Rxjs 5升级到Angular 6 / Rxjs 6?
您必须更改导入和实例化。看看达米恩的博客文章
Tl; diana:
import { Observable, fromEvent, of } from 'rxjs';
const yourResult = Observable
.create(of(yourObservable))
.startWith(null)
.map(x => x.someStringProperty.toLowerCase());
//subscribe to keyup event on input element
Observable
.create(fromEvent(yourInputElement, 'keyup'))
.debounceTime(5000)
.distinctUntilChanged()
.subscribe((event) => {
yourEventHandler(event);
});
不管出于什么原因,补丁对我来说不起作用,所以我不得不求助于以下方法:
import { of } from 'rxjs/observable/of'
// ...
return of(res)