当前位置:  开发笔记 > 编程语言 > 正文

Angular2 RxJS得到'Observable_1.Observable.fromEvent不是函数'错误

如何解决《Angular2RxJS得到'Observable_1.Observable.fromEvent不是函数'错误》经验,为你挑选了2个好方法。

我正在使用AngularJS 2 Beta 0,我正在尝试从窗口对象上的事件创建一个RxJS Observable.我相信我知道在我的服务中将事件捕获为Observable的公式:

var observ = Observable.fromEvent(this.windowHandle, 'hashchange');

问题是,每次我尝试运行此代码时,都会收到一条错误消息,指出'fromEvent'不是函数.

Uncaught EXCEPTION: Error during evaluation of "click"
ORIGINAL EXCEPTION: TypeError: Observable_1.Observable.fromEvent is not a function

这似乎意味着我现在没有import正确处理我,因为RxJS没有包含在Angular 2的构建中,尽管我的应用程序的其余部分正常运行,这对我来说意味着RxJS应该是它应该的位置.

我在服务中的导入如下所示:

import {Observable} from 'rxjs/Observable';

虽然我也尝试使用它(对代码进行适当的更改),但结果相同:

import {FromEventObservable} from 'rxjs/observable/fromEvent';

我的Index.html中有以下配置:


有人能告诉我我做错了什么吗?



1> sclausen..:

绝对不需要立即导入所有操作员!你刚输入fromEvent错了.你可以这样做:

import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';

编辑:除了我已经写过的内容:使用角度的AoT-Compiler进行树抖动,根据导入的内容删除未使用的代码.如果只是从rxjs/rx导入一些对象或函数,则编译器无法删除任何内容.始终只需进口,您需要的!


请注意,您必须将rxjs/Observable中的"O"大写.我永远地寻找这个错误.
这是更好的答案.导入所有rxj肯定会减慢启动时间.
注意:使用-aot的ng服务可能不会获取新的导入并继续抱怨,直到你杀死它并再次启动它.

2> Michael Oryl..:

问题似乎是import语句应如下所示:

import {Observable} from 'rxjs/Rx';

请注意,它Observable是从而rxjs/Rx不是来自rxjs/Observable. 正如@EricMartinez所提到的那样,以这种方式拉动它将自动获得所有操作员(如.map()).


为什么我们要添加rxjs中的所有内容,我们不能只添加所需的部分
这不是推荐用法..你永远不应该导入所有运算符(因此永远不会使用'rxjs/RX'
推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有