我有数组列表,例如:
var resultArray = ['a','b','c','d','e'];
我在我的代码中使用了这个数组迭代:
var updateArray = [];
_.each(resultArray, function (value, index) {
//execute this function for file uploading..
processMyFunction(value, function (error, success) {
if(error) {
//code to push it in my new array list
updateArray.push({value:value,message:error});
}
else {
//code to push it in my new array list
updateArray.push({value:value,message:error});
}
});
console.log(updateArray)
});
这里没有给我更新控制台。由于上传功能需要时间来执行此操作,因此它来自此processMyFunction
功能。
我应该如何让这个_.each等到我的功能没有完成它的过程?
有关于此的任何建议吗?
答案 0 :(得分:0)
如何将async / await与reduce结合使用? 使用ES7,这应该是可能的。
e.g。
updateArray = await updateArray.reduce(async (acc, value) => {
acc = await acc;
await processMyFunction(value, function (error, success) {
if(error) {
//code to push it in my new array list
acc.push({value:value,message:error});
}
else {
//code to push it in my new array list
acc.push({value:value,message:error});
}
});
return acc;
}, []);
console.log(updateArray);
<强>更新强> 在我对此进行了一些研究后,我还发现this有趣的帖子。