javascript - forEach 不等到承诺解决
问题描述
有人帮我解决这个问题吗?在为当前索引解析承诺之前,循环转到下一个索引。这是我的代码
let images = [
{
uri : 'file1://.....',
},
{
uri : 'file2://.....',
isBase64:true,
base64:'ATDDJWUDUWDUDGIHDIHDI'
},
{
uri : 'file3://.....',
}
];
imageProcessing().then(()=>{
console.log('All done')
})
imageProcessing = () => {
return new Promise((resolve) => {
images.forEach(async (element, index) => {
await convertUriToBase64(element, index);
if(images.length -1 === index){
resolve();
}
});
});
};
let convertUriToBase64 = (element,index) => {
return new Promise(async(resolve) => {
if(element.isBase64){
let base64 = await doSomeAsyncStuff(element.uri,'base64'); // got base64
images[index].base64 = base64;
images[index].isBase64 = true;
console.log(index + ' done');
resolve();
}
else{
console.log(index + ' done');
resolve(); // resolve if already it is in base64 format
}
});
};
有可能让它像这样工作吗?我得到这样的输出
0 完成 2 完成 全部完成 1 完成
预期产出
0 done
1 done
2 done
All done
谢谢
解决方案
推荐阅读
- markdown - 在降价中调整 gif (github)
- dart - 如何使用 Angel/Jael 将函数附加到 onClick 事件?
- javascript - 如何在文件之间读取/写入 JSON 数据?(Node.Js)
- ios - 如何将路线坐标数组划分为等距离部分?
- reactjs - 使用 React.lazy 给出的元素类型无效
- java - 如何将多个服务放在一个类中,该类在 Activiti 中实现 JavaDelegate 接口
- python - sys.argv[0] 总是什么都不返回
- c - 依次出现 fwrite 和 fread 问题
- xml - 如何使用 minidom 正确解析 xml
- java - 我如何将完全标记的数据集拆分为标记和未标记的数据以用于半监督学习