【问题标题】:RxJS Array of urls to GET requests mergedRxJS 合并 GET 请求的 url 数组
【发布时间】:2023-03-20 16:29:01
【问题描述】:

我是 RxJS 的新手,想要做以下事情(在 Angular 2 中):

  1. 从服务器请求一些包含 url 数组的 JSON
  2. 向每个网址发出请求
  3. 订阅所有这些请求的联合完成

目前我的方法是这样的:

    load():void {
        this.http.get(SVG_LIST)
            .map(res => {
                return <Array<string>> res.json().files;
            })
            .catch(this.handleError);
    }

我在map 方法上链接了什么?

【问题讨论】:

    标签: javascript angular rxjs reactive-programming


    【解决方案1】:

    您正在寻找Promise.all 的等价物,即运算符forkJoin。你可以试试这样的:

    load():void {
            this.http.get(SVG_LIST)
                .map(res => {
                    return <Array<string>> res.json().files;
                })
                .flatMap(files => Rx.Observable.forkJoin(files.map(makeRequest)))
                .catch(this.handleError);
        }
    

    files 是一个 url 数组,makeRequest 是一个函数,它接受一个 url 并返回一个 observable 或一个 promise。

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2021-08-01
      相关资源
      最近更新 更多