【发布时间】:2019-08-06 14:03:38
【问题描述】:
基本上我的问题是 - 我有 6 个不同的端点返回不同的数字 - 我希望能够异步发送 6 个请求,但使用 chrome 工具我发现它们按顺序运行而不是异步。
ngOnInit() {
private readonly TEMP_URL: string = 'https://www.random.org/integers/?num=1&min=1&max=100000&col=1&base=10&format=plain&rnd=new';
const result1 = this.http.get<Number>(this.TEMP_URL);
const result2 = this.http.get<Number>(this.TEMP_URL);
const result3 = this.http.get<Number>(this.TEMP_URL);
const result4 = this.http.get<Number>(this.TEMP_URL);
const result5 = this.http.get<Number>(this.TEMP_URL);
const result6 = this.http.get<Number>(this.TEMP_URL);
const result7 = this.http.get<Number>(this.TEMP_URL);
forkJoin(result1,result2,result3,result4,result5,result6,result7).subscribe(results => {
this.retVal0= results[0];
this.retVal1 = results[1];
this.retVal2 = results[2];
this.retVal3= results[3];
this.retVal4= results[4];
this.retVal5= results[5];
this.retVal6= results[6];
this.retVal7= results[7];
});
};
【问题讨论】:
-
如果将
async关键字添加到ngOnInit()会发生什么? -
@LeBavarois 结果相同
-
@Liam 这些是应用生命周期内唯一发送的 HTTP 请求
-
@Liam 更新了图片以反映页面加载时的所有事件
-
如果您尝试改用 mergeMap() 会怎样? stackblitz.com/edit/angular-mrr4ef
标签: angular angular-httpclient