簡體   English   中英

Angular 和 RxJS - 訂閱 function for forkjoin 未執行

[英]Angular and RxJS - subscribe function for forkjoin not executing

在下面的代碼中,訂閱 function 沒有運行('Never called' 沒有出現在控制台中); 但是,調用了這三個服務。

  ngOnInit(): void {
    forkJoin([this.adminBCService.getAvailableBusinessCases(), this.explainersService.get(), this.adminPainsService.getMetricsList()])
      .pipe(takeUntil(this.destroy$))
      .subscribe(resultsArray => {
        console.log(resultsArray);
        this.businessCasesSelectable = resultsArray[0];
        this.selectedBusinessCase = this.businessCasesSelectable.length ? this.businessCasesSelectable[0] : null;
        this.explainers = resultsArray[1];
        this.metricList = resultsArray[2];
      });
  }

我是 RxJS 和 Angular 的新手。我需要在前三個完成后調用附加服務,並計划在 forkjoin 的 subscribe() function 中執行此操作,但我所做的一些事情似乎阻止了 function 從做任何事情。

更新:第三個服務調用有自己的訂閱,所以它沒有傳遞 Observable。 更改后,forkJoin 成功調用訂閱 function。

如果每個observable 都至少返回一個值並且已經完成, forkJoin只會返回一個值。

這意味着:

  • 一次服務呼叫失敗
  • 一個服務電話沒有完成。

如果您不想等待完成combineLatest是一個不錯的選擇。

另外在旁注:不要通過影響值來打破反應上下文: tap map這些值,並在最終subscribe中設置 class 成員。

暫無
暫無

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

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