RXJS - 例外:Rx 未定义,ng 2
RXJS - EXCEPTION: Rx is not defined, ng 2
我有一个 angular2 服务,它发出一个 API 调用,然后 returns 一个可观察的,但是,RXJS 返回一个错误,说 EXCEPTION: Rx is not defined。我还需要导入什么?我当然不需要导入整个文件夹?
!--- 进口
import 'rxjs/add/observable/from';
import 'rxjs/add/operator/map';
!---服务代码
const server = 'http://api.myserver.com';
return (dispatch) => {
dispatch(this.requestJson());
let s = this._http.get(`${server}`);
s.flatMap(s => {
let theRes = JSON.parse(s._body);
return Rx.Observable.from(theRes); <--- happens right here
}).filter(function(data) {
console.log('all array ' + data);
return true;
}).subscribe(function (v) {
console.log(v);
});
您不需要使用 Rx.Observable
,单独使用 Observable
即可。并添加:
import {Observable} from 'rxjs/Observable'
更新:自从我发布这个答案后,Angular CLI 改进了 tree shaking,你绝对应该始终从它自己的模块中导入:
import {Observable, Subscription} from 'rxjs' // is okay
import {Observable} from 'rxjs/Observable' // much better
import {Subscription} from 'rxjs/Subscription' // much better
我有一个 angular2 服务,它发出一个 API 调用,然后 returns 一个可观察的,但是,RXJS 返回一个错误,说 EXCEPTION: Rx is not defined。我还需要导入什么?我当然不需要导入整个文件夹?
!--- 进口
import 'rxjs/add/observable/from';
import 'rxjs/add/operator/map';
!---服务代码
const server = 'http://api.myserver.com';
return (dispatch) => {
dispatch(this.requestJson());
let s = this._http.get(`${server}`);
s.flatMap(s => {
let theRes = JSON.parse(s._body);
return Rx.Observable.from(theRes); <--- happens right here
}).filter(function(data) {
console.log('all array ' + data);
return true;
}).subscribe(function (v) {
console.log(v);
});
您不需要使用 Rx.Observable
,单独使用 Observable
即可。并添加:
import {Observable} from 'rxjs/Observable'
更新:自从我发布这个答案后,Angular CLI 改进了 tree shaking,你绝对应该始终从它自己的模块中导入:
import {Observable, Subscription} from 'rxjs' // is okay
import {Observable} from 'rxjs/Observable' // much better
import {Subscription} from 'rxjs/Subscription' // much better