是否有一种方法可以对Map集合的实例使用async.each(或类似的smth)来遍历集合上的所有键值对并执行smth,例如调用foo(key,value,cb)每对吗?
答案 0 :(得分:1)
是的,您可以为map定义一个异步函数,并对每个值使用await,然后再继续。请记住最后要使用Promise.all()
,因为asyncMap
将是需要解决的一系列诺言。
function doSomething(arr) {
var asyncMapArr = arr.map(async item => {
item = await yourFunction(item);
return item;
});
console.log("Initial array: ", arr);
console.log("In progress array: ", asyncMapArr);
Promise.all(asyncMapArr)
.then(result => console.log("Updated array: ", result));
}
function yourFunction(value) {
// you can run your async code here and return a promise in the end
return new Promise(function(resolve, reject) {
resolve(value + 1);
});
}
var arr = [1, 2, 3];
doSomething(arr);