[英]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.