我必须{fetch
张这样的照片:
for (const imgurl of urls){
fetch('https:/........url=' + imgurl)
.then(res => res.blob())
.then(blob => {
console.log(blob);
blobs.push(blob);
});
当我将照片插入阵列时,我想保持for
循环的顺序。
这意味着我正在寻找一种方法:
index
添加到fetch
本地,并在回调中读取它。index
进行回调时,将结果blob
插入到index
数组的右侧blobs
处。 (如果我在2之前获得索引4,则将其放入4,或者稍后以某种方式保存并重组数组)假设数组大小未知,可以为5-9。
答案 0 :(得分:1)
使用Promise.all:
const fetches = [];
for (const imgurl of urls){
fetches.push(fetch('https:/........url=' + imgurl));
});
Promise.all(fetches).then(async results => {
for (const res of results) {
const blob = await res.blob();
console.log(blob);
blobs.push(blob);
}
});
像这样,未经测试。 Promise.all保证您在完成所有提取操作后按有效顺序获得结果数组