我是这样做的:
let urls = [url1, url2, url3];
let urls_ = Observable
.from(urls);
let ajax = function() { return promise; };
let results_ = urls_
.flatMap(ajax)
.zip(
urls_,
(response, url) => {
return {url, response};
}
)
但问题在于 {response, url}
对不匹配,即 url1 与 response1 不匹配。我经常面对这个用例,以至于没有一个操作符来处理这个问题,即在初始 Observable 上做一些异步操作,然后将初始 Observable 和异步结果都向前传递。
在 RxJS 中是否有一个运算符可以做到这一点?否则如何在我的示例中完成 1-1 压缩?
最佳答案
flatMap
有一个 overload将为您处理,第二个参数接受具有签名的方法
function resultSelector(outerValue, innerValue, outerIndex, innerIndex)
你可以这样使用它
let urls = [url1, url2, url3];
let urls_ = Observable
.from(urls);
let ajax = function() { return promise; };
let results_ = urls_
.flatMap(ajax,
(url, response) => {
return {url, response};
})
)
关于javascript - 如何: request the url and zip it with response in rxjs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31678887/