Да, вы можете определить асинхронную функцию для карты и использовать 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);