所以我有一段类似于这里的代码,需要对其进行重构以使用map / forEach。
async function asyncForEach(array, callback) {
for (let index = 0; index < array.length; index++) {
await callback(array[index], index, array);
}
}
但是当我使用下面的map时,它只是解析整个json,而无需等待数组的各个条目在回调函数中延迟发送每个条目。
async function asyncForEach(array, callback) {
await array.map(async (item, index) => {
await callback(array[index], index, array);
});
}
任何帮助将不胜感激。
答案 0 :(得分:2)
您必须在数组上将Promise.all
用作await
(尽管它包含了promises)没有作用:
await Promise.all(array.map(/*...*/));
我将其写为:
const asyncForEach = (array, callback) =>
Promise.all(array.map(callback));