Answers:
其实我的进口一团糟。在最新版本的RxJS中,我们可以这样导入它:
import 'rxjs/add/observable/of';
operator/
- rxjs/add/operator/of
-而不是observable/
。天啊
如果有人在使用Angular 6 / rxjs 6时遇到此问题,请在此处查看答案: 无法在RxJs 6和Angular 6中使用Observable.of
简而言之,您需要像这样导入它:
import { of } from 'rxjs';
然后不要打电话
Observable.of(res);
只是使用
of(res);
如果您使用的是Angular 6/7
import { of } from 'rxjs';
然后不要打电话
Observable.of(res);
只是使用
of(res);
无论出于什么原因,补丁都不对我有用,所以我不得不求助于这种方法:
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组件。
您还可以通过以下方式导入所有运算符:
import {Observable} from 'rxjs/Rx';
import { Observable } from 'rxjs/Observable' import 'rxjs/add/observable/of';
不起作用。仅import {Observable} from 'rxjs/Rx';
适用。版本是5.4.2
Observable_1.Observable.of(...).delay(...).timeout is not a function
。我没有使用import 'rxjs/add/operator/timeout'
我正在使用Angular 5.2和RxJS 5.5.6
此代码并没有工作:
import { Observable,of } from 'rxjs/Observable';
getHeroes(): Observable<Hero[]> {
return of(Hero[]) HEROES;
}
下面的代码有效:
import { Observable } from 'rxjs/Observable';
import { Subscriber } from 'rxjs/Subscriber';
getHeroes(): Observable<Hero[]>
{
return Observable.create((observer: Subscriber<any>) => {
observer.next(HEROES);
observer.complete();
});
}
调用方式:
this.heroService.getHeroes()
.subscribe(heroes => this.heroes = heroes);
我认为他们可能会移动/更改RxJS 5.5.2中的()功能
// "rxjs": "^5.5.10"
import { of } from 'rxjs/observable/of';
....
return of(res)
从Angular 5 / Rxjs 5升级到Angular 6 / Rxjs 6?
您必须更改导入和实例化。查看Damien的博客文章
Tl; dr:
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);
});
我今天有这个问题。我正在使用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加载库的方式的这一小变化解决了我的问题。
在rxjs
v6中,of
应将运算符导入为import { of } from 'rxjs';
某种程度上,甚至Webstorm都做到了import {of} from 'rxjs/observable/of';
,一切都开始起作用
import { of } from 'rxjs'; return of(res);
github.com/ReactiveX/rxjs/blob/master/MIGRATION.md#import-paths& github.com/ReactiveX/rxjs/blob/master/...