Мне нужно обрабатывать несколько асинхронных операций в цикле. Эти асинхронные операции я использую await , чтобы они выполнялись последовательно. В результате я хочу, чтобы циклы были последовательными, асинхронные операции в каждом цикле параллельны, но результат все выстроен. Как решить эту ситуацию?
Извините, я плохо владею английским языком. Я перевожу их с помощью Google.
В каждом цикле я использую await для работы с Promise , который имеет асинхронную операцию. Но все они последовательные.
Мой код такой:
var func1 = function(){return new Promise(function(resolve, reject){
//After 10s print(1);
loadRes("resname_1",
(res)=>{print(1); resolve(res);},
(err)=>{reject(err);});
})}
var func2 = function(){return new Promise(function(resolve, reject){
//After 10s print(2);
//some async operation like above
})}
var func3 = function(){return new Promise(function(resolve, reject){
//After 10s print(3);
//some async operation like above
})}
var test = async function(){
//some code...;
await func1;
//some code...;
await func2;
await func3;
}
for(let i = 0; i < 3; ++i){
test();
}
Результат, который я получил: 111222333, всего секунд: 90
Что я хочу: 123 123 123, всего секунд: около 30