Javascript 原型链接如何与angular5中的RxJS一起工作?
在angular 5项目中,我试图处理,但不理解导入分离的Javascript 原型链接如何与angular5中的RxJS一起工作?,javascript,angular,rxjs,Javascript,Angular,Rxjs,在angular 5项目中,我试图处理,但不理解导入分离的操作符时它是如何工作的 考虑将promise的链接到地图上: import { fromPromise } from 'rxjs/observable/fromPromise'; import { map } from 'rxjs/operator/map'; 使用fromPromise().map() 返回错误:fromPromise\u 1.fromPromise(…).map不是函数 和 import 'rxjs/add/obs
操作符时它是如何工作的
考虑将promise的链接到地图上
:
import { fromPromise } from 'rxjs/observable/fromPromise';
import { map } from 'rxjs/operator/map';
使用fromPromise().map()
返回错误:fromPromise\u 1.fromPromise(…).map不是函数
和
import 'rxjs/add/observable/fromPromise';
import { Observable } from 'rxjs/Observable';
import { map } from 'rxjs/operator/map';
使用Observable.fromPromise().map()
返回错误:Observable\u 1.Observable.fromPromise(…).map不是函数
但是
import Rx from 'rxjs/Rx';
使用Rx.Observable.fromPromise().map()
按预期工作
喜欢
import { fromPromise } from 'rxjs/observable/fromPromise';
import { map } from 'rxjs/operator/map';
使用map.call(fromPromise(),)
有人能解释一下吗?在可管道化操作符之前,您必须向可观察的原型添加一个操作符才能使用它
import 'rxjs/add/observable/fromPromise';
此行将fromPromise
操作符添加到可观察的原型中。您可以查看源代码。这就是为什么添加后错误会转到map
。如果您还为map
添加了一个,那么它可能会开始为您工作
import Rx from 'rxjs/Rx';
这条线将导入所有内容,包括将所有操作员修补到可观察的原型上。这可能会增加您的捆绑包大小,因此应该避免
如果您使用的是RxJs 5.5+,那么您可以在执行以下操作的地方使用pipeable操作符:
import { map } from 'rxjs/operators';
autobots.pipe(map(autobot => transform(autobot));
看到了,好了,一切都在导入map
的细微差别中,路径很好:'rxjs/operator/map'
导入map
方法,你可以调用它,但是'rxjs/add/observable/map'
添加observable.prototype.map
!