作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我很困惑如何导入这些运算符。有些我可以导入import 'rxjs/add/operator/do';
还有一些我不能。例如,这不起作用:import 'rxjs/add/operator/map';
(我检查了 rxjs/add/operator,那里有 map)。
基本上我想做的是在 Angular4 中重现它:
var requestStream = Rx.Observable.just('https://api.github.com/users');
var responseStream = requestStream
.flatMap(function(requestUrl) {
return Rx.Observable.fromPromise(jQuery.getJSON(requestUrl));
});
responseStream.subscribe(function(response) {
// render `response` to the DOM however you wish
});
我还想知道如何处理 just
运算符,因为我在 rxjs/add/operator... 中看不到它...
感谢您的帮助
最佳答案
RxJS 中有静态和实例运算符:
static
of
interval
instance
map
first
你可能想像这样在 Observable
全局对象或可观察实例上使用它们:
Observable.of()
observableInstance.map()
为此,您需要从 add
包中导入模块:
import 'rxjs/add/observable/of'
import 'rxjs/add/operator/map'
当您导入模块时,它实际上通过添加与运算符对应的方法来修补 Observable
类或 Observable
原型(prototype)。
但您也可以直接导入这些运算符,而不用修补 Observable
或 observableInstance
:
import { of } from 'rxjs/observable/of';
import { map } from 'rxjs/operator/map';
of()
map.call(observableInstance)
随着在 RxJs@5.5 中引入可让操作符,您现在应该利用内置的 pipe
方法:
import { of } from 'rxjs/observable/of';
import { map } from 'rxjs/operators/map';
of().pipe(map(), ...)
关于angular - 如何从 `rxjs`包中正确导入算子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45483934/
我是一名优秀的程序员,十分优秀!