为什么Rx.Observer在从' rxjs'导入时会有所不同?和' rx-lite'

时间:2016-06-01 02:18:32

标签: rxjs

这里是代码,控制台输出在评论中:

import Rx from 'rxjs';
import { Observer } from 'rxjs/Observer';
import Rx2 from 'rx-lite';
// import Promise from 'bluebird';
import 'whatwg-fetch';

const componentsData = {};

const availableComponentsObservable = Rx.Observable.create(observer => {
    console.log(Observer); // output: undefined
    console.log(Rx.Observer); // output: undefined
    console.log(Rx2.Observer); // output: function () {}
    fetch('/static/component-list.json').then((res) => res.json())
        .then((components) => { observer.onNext(components); })
        .catch((err) => { observer.onError(err); });
});// .groupBy(component => component.group);

availableComponentsObservable.subscribe((data) => {
    componentsData.availableComponents = data;
});

我不知道为什么从rxjs导入时未定义

1 个答案:

答案 0 :(得分:1)

rxjs https://github.com/ReactiveX/RxJS是Ben Lesh导致参考实现https://github.com/tc39/proposal-observable的RxJS 5实现

这是一个重写,API有很多不同之处。您可以在此处找到差异:https://github.com/ReactiveX/rxjs/blob/master/MIGRATION.md

rx-lite是https://github.com/Reactive-Extensions/RxJS的一部分,它是RxJS 4的实现。

请注意,使用现代构建工具,以及您希望导入使用RxJS的每个operator / observable的方式,不需要RxJS 5的“精简版”。只是不要使用rx.all。 js并使用构建工具进行记录,该工具仅包含您在最终可交付成果中使用的文件。