簡體   English   中英

如何在 Angular 解析器中使用 forkJoin 和 mergeMap 來鏈接 HTTP 請求?

[英]How to use forkJoin and mergeMap in Angular resolver to chain HTTP requests?

我正在構建一個在我的應用程序最初加載時使用的解析器。 我需要運行幾個 HTTP 請求,它們可以同時運行(因此使用 forkJoin)。 但是一旦 forkJoin 完成,有一些需要鏈接。 實現這一目標的最佳方法是什么? 我嘗試使用mergeMap如下:

  resolve(): Observable<any> {
return forkJoin([
  this.dataService.getUser(),
  this.dataService.getSummary()
]).mergeMap((data) => {
  return this.dataService.listDetails(data[1]);
});

}

但是,我收到以下錯誤:

    ERROR Error: Uncaught (in promise): TypeError: (0 , rxjs__WEBPACK_IMPORTED_MODULE_1__.forkJoin)(...).mergeMap is not a function
TypeError: (0 , rxjs__WEBPACK_IMPORTED_MODULE_1__.forkJoin)(...).mergeMap is not a function

mergeMap是一個運算符。 這些需要在pipe方法中使用:

  resolve(): Observable<any> {
    return forkJoin([
      this.dataService.getUser(),
      this.dataService.getSummary()
    ]).pipe(mergeMap((data) => {
      return this.dataService.listDetails(data[1]);
    }));
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM