angular – 试图了解RxJS导入

我很难弄清楚这个import语句究竟是如何工作的(在一个用Typescript编写的Angular应用程序中):
import 'rxjs/add/operator/toPromise';

我得到rxjs映射到SystemJS配置文件中的相应node_modules子文件夹,但后来我被卡住了.我看到有一个index.js文件,但我不知道这是否或如何有助于解决add / operator / …部分.

同样,我不明白这个:

import {Observable} from 'rxjs/Observable';

同样,这个地方没有文件Observable.*文件.我猜它通过index.js文件以某种方式工作,但我真的希望得到更透彻的理解,因为我读到很容易导入所有RxJS,这增加页面加载时间.

我仔细看了一下Typescript模块解析文档,但我觉得这还不足以解释它.

更新:在阅读下面接受的答案后,我发现我一直在查看node_modules / rx目录而不是node_modules / rxjs,因此import语句与目录结构完全匹配.

这非常简单,因为默认情况下TypeScript会查找node_modules目录.

导入以下内容

import {Observable} from 'rxjs/Observable';

被解析为node_modules / rxjs / Observable.d.ts,这足以编译代码.

类似地,导入rxjs / add / operator / toPromise将解析为node_modules / rxjs / add / operator / toPromise.ts.顺便说一下,您可以使用–traceResolution编译器选项来查看测试的TypeScript路径.

当你有编译的JS(例如,以commonjs格式)时,你可以在节点中运行你的app,因为它将调用require(‘rxjs / Observable’),它将解析为node_modules / rxjs / Observable.js.然后与rxjs / add / operator / toPromise类似.

请注意,RxJS github页面代码结构与实际的npm包不同.基本上,只将package.json和带有已编译的.js和.d.ts文件src目录上传到npm存储库(原始.ts源文件位于node_modules / rxjs / src中,但您永远不想直接使用它们).

相关文章

AngularJS 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...