gpt4 book ai didi

angular - 使用 Angular RxJs Observables 处理多个 http 请求并等待所有请求完成

转载 作者:行者123 更新时间:2023-12-01 07:24:11 27 4
gpt4 key购买 nike

我正在使用 Observables,我有一个用例,其中:

  • 我必须从服务中获取“页面”,这给了我 Page[]
  • 对于每个“页面”,我必须从其他服务中获取“部分”
  • 同样在订阅所有这些“部分”时,我必须根据返回的数据执行一些操作。

  • 问题是一旦所有这些请求都完成了,就必须采取一些行动。

    最佳答案

    您需要使用 合并 map forkJoin
    使用时 forkJoin您可以同时触发并行请求,它会等待所有请求完成。

    this.http.get('/api/pages/')
    .map((res: any) => res.json())
    .mergeMap((pages: any[]) => {
    if (pages.length > 0) {
    return Observable.forkJoin(
    pages.map((page: any) => {
    return this.http.get('/api/sections/' + page_id)
    .map((res: any) => {
    let section: any = res.json();
    // do your operation and return
    return section;
    });
    });
    );
    }
    return Observable.of([]);
    });
    }

    关于angular - 使用 Angular RxJs Observables 处理多个 http 请求并等待所有请求完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44792981/

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