【发布时间】:2021-03-25 19:25:56
【问题描述】:
我正在尝试以 base64 格式获取一组图像。为了利用最大带宽,我们计划一张接一张地获取图像。
下面是代码
const input = ['url1']; //Array of image urls
this.recursiveFunction(input, 0, []).then((res: any) => {
console.log(res);
});
async recursiveFunction(urls: any, index = 0, responses: any = []){
const url = urls[index];
return await this.srv.getData({ url: url }).subscribe((response: any) => {
responses.push(response);
if (responses.length !== urls.length) {
return this.recursiveFunction(urls, index + 1, responses);
}
return responses;
});
}
使用 6 张图片进行测试,服务调用运行良好。
但我看到 console.log(res) 立即输出该函数被调用(在第一次服务调用之前),如下所示
响应包含所有 6 张图片 base64 数据。如何在最后一次服务调用结束时获取响应
【问题讨论】:
标签: angular async-await