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