gpt4 book ai didi

angular - 如何从 `rxjs`包中正确导入算子

转载 作者:太空狗 更新时间:2023-10-29 17:17:10 25 4
gpt4 key购买 nike

我很困惑如何导入这些运算符。有些我可以导入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)。

但您也可以直接导入这些运算符,而不用修补 ObservableobservableInstance:

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(), ...)

阅读更多 RxJS: Understanding Lettable Operators

关于angular - 如何从 `rxjs`包中正确导入算子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45483934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com