关于Rxjs的基本问题

时间:2016-07-15 02:07:16

标签: javascript angular npm rxjs rxjs5

我开发了一个带有angular2的小应用程序,我安装了Rxjs 5。 在每个教程中都有一种不同的方式来导入Rxjs库。 要在angular2 web中导入的代码无效;我的意思是Websotrm不识别Observable或其任何功能(来自,订阅,......)。

  1. 我需要做些什么来解决这个问题?
  2. 如果我从Rxjs导入所有内容,网站的负载会变慢吗? (我不会有更多2个班级)
  3. (Webstorm问题)如何让webstorm自动完成功能的名称,而无需按Alt + space

2 个答案:

答案 0 :(得分:1)

最新的RXJS发行版提供了分解模块,以减轻庞大的文件大小,Lodash。导入import { Observable } from 'rxjs/Observable'(如另一个答案所示)将为您提供整个库,不建议使用。

相反,单独导入方法和运算符:

  • 对于核心类,从其作用域模块导入该类:import 'rxjs/add/observable/fromEvent'
  • 例如方法,使用“添加”范围中的实例范围:add/operator(注意,没有要导入的结构化对象 - 导入时会自动添加该方法)
  • 适用于运营商,从import 'rxjs/add/operator/switchMap'范围导入:import { Observable } from 'rxjs/Observable'; import { BehaviorSubject } from 'rxjs/BehaviorSubject'; import 'rxjs/add/observable/fromEvent'; import 'rxjs/add/operator/flatMap'; import 'rxjs/add/operator/switchMap'; export { Observable, BehaviorSubject };

导入一次运算符使其可用于所有实例,因此建议将您使用的所有部分收集到一个文件中,并在需要的地方导入该文件,I.E。通过重新导出您使用的实例。

/src

答案 1 :(得分:0)

  1. 这适用于我的项目:import {Observable, Subject} from "rxjs/Rx";

  2. 您只需要从Rx.umd.min.js添加rxjs/bundles即可。它大约是170KB。

  3. 尝试升级到WebStorm 2016.2。我正在使用该版本,它工作正常(前提是你有正确的导入)一般来说更好地支持Angular 2。请参阅更改说明。 我几乎从不使用Ctrl + Space。提示:将Autopopup code completion值(设置,编辑器,代码完成)设置为非常低的延迟。