簡體   English   中英

Angular等待多個http請求完成,然后觸發最后一個

[英]Angular wait for multiple http requests to complete and then fire the last one

我有4個http請求。 三個接收查詢值,而第四個接收實際表格數據。

他們像這樣去:

   let medicalData = this.data.getCodes('medical').subscribe((data: {}) => {
     console.log('med');
       this.Medical = data;
        });
   let delayData = this.data.getCodes('delay').subscribe((data: {}) => {
    console.log('del');
          this.Delays = data;
           });
   let disabilityData = this.data.getCodes('disability').subscribe((data: {}) => {
    console.log('dis');
            this.Disability = data;
             });
   let districtData = this.data.getCodes('district').subscribe((data: {}) => {
    console.log('dist');
              this.District = data;
               });

如何使第四個get請求等到前三個請求完成?

提前致謝

您應該使用forkJoin獲得所需的結果。 forkJoin在發出值之前等待所有可觀察對象完成。 例:

forkJoin(
  this.data.getCodes('medical'),
  this.data.getCodes('delay'),
  this.data.getCodes('disability'),
  this.data.getCodes('district'),
).subscribe(([medicalData, delayData, disabilityData, districtData]) => {
  this.Medical = medicalData;
  this.Delays = delayData;
  this.Disability = disabilityData;
  this.District = districtData;

  // make your last http request here.
});

您可以使用forkJoin

let medicalData = this.data.getCodes('medical');
let delayData = this.data.getCodes('delay');
let disabilityData = this.data.getCodes('disability')
Observable.forkJoin([medicalData, delayData, disabilityData]).subscribe((responses)=>{
    // responses is an array of responses for the individual observables
    // Execute the code you want to run after the three observables here
});

暫無
暫無

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

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