gpt4 book ai didi

javascript - RXJS - flatMap 冗余使用?

转载 作者:行者123 更新时间:2023-11-29 17:51:22 27 4
gpt4 key购买 nike

我读过 article关于 RXJS,它还解释了 flatMap
我已经知道有什么区别以及它实际上做了什么,它将可观察到的可观察到的可观察到单个可观察序列。 (类似于 C# 中的 SelectMany )

无论如何,他们已经使用 flatMap 进行 jQuery getJson 请求:

var responseStream = requestStream
.flatMap(function(requestUrl) {
return Rx.Observable.fromPromise(jQuery.getJSON(requestUrl));
});

我很清楚发生了什么(我在很多地方都看到这种用法)

但它不能是一个简单的 :(下面的代码不起作用,但我仍然想知道为什么,因为从逻辑上讲它似乎应该起作用)

var responseStream = requestStream
.map(function(requestUrl) {
return jQuery.getJSON(requestUrl);
});

?

问题

这两个片段有什么区别?

Fiddle

最佳答案

第二个片段中的代码没有按预期工作,因为它创建了 promise 的可观察对象(不是值)。 map 运算符不会解包从它返回的 promise 。

因此,您仍然需要 flatMap 或类似的运算符来解包 promise,但您可以直接在其中返回 promise,并简化代码如下:

var responseStream = requestStream
.flatMap(function(requestUrl) {
return jQuery.getJSON(requestUrl);
});

关于javascript - RXJS - flatMap 冗余使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43407114/

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