繁体   English   中英

RXJS:如何将多个返回对象的 HTTP 请求组合成一个数组

[英]RXJS: How to combine into an array multiple HTTP Requests that returns an object

嗨,我有一个返回object的方法,我计划在最后一次成功调用后调用n次并combine成一个array

  public getActivity({minprice, maxprice, type}: QueryParams) {
    const url = `${BASE_URL}?minprice=${minprice}&maxprice=${maxprice}&type=${type}`;
    return this.httpClient.get(url);
  }

我不太确定如何在 rxjs 中做到这一点,但我的预期输出是这样的:

activities = [{
  fetchedItemId: 1
},
{
  fetchedItemId: 2
},
{
  fetchedItemId: 3
}
]
  getActivity() {
    from(new Array(5))
    .pipe(
      mergeMap(() => this.appService.getActivity(this.filter)),
      filter((activity: Activity) => !activity.error),
      toArray(),
    )
    .subscribe((activities: Activity[]) => {
      this.activities = activities;
    });
  }

我设法通过管道、mergeMap、filter 和 toArray 的组合来解决它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM