如何:请求 url 并在 rxjs 中用响应压缩它?
How to: request the url and zip it with response in rxjs?
我是这样做的:
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};
})
)
我是这样做的:
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};
})
)