如何在rxjs中请求url并使用response压缩它

How to: request the url and zip it with response in rxjs?

本文关键字:response 压缩 url rxjs 请求      更新时间:2023-09-26

我这样做:

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不匹配。我经常面对这样的用例,以至于没有一个操作符,即在初始的可观察对象上做一些异步操作,然后传递初始的可观察对象和异步结果。

是否有一个操作符在RxJS做这个?否则我如何在我的例子中完成1-1压缩?

flatMap有一个重载将为您处理它,第二个参数接受一个签名为

的方法。
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}; 
         })
      )