Я новичок в обещаниях. Я искал примеры выполнения промисов по порядку, но не нашел примера, похожего на мое приложение.
Моя проблема в том, что я хочу разрешать промисы в определенном порядке, а также фиксировать все результаты, когда промисы разрешаются. Из поиска примеров. Я создал упрощенную версию задачи.
Мне удалось создать функцию doWork(), но проблема в том, что все, что она делает, — это разрешает промисы по порядку, не фиксируя результатов.
В идеале мне нужна функция, которая возвращает обещание, которое разрешается со всеми результатами.
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<title>Test</title>
<script>
function getRandomInterval(min, max){
var random = Math.random() * (+max - +min) + +min;
return random;
}
function createPromiseReturningFn(input){
return function(){
return new Promise(
function(resolve, reject){
setTimeout(function(){
// console.info(input);
resolve(input);
}, getRandomInterval(0, 100));
}
);
}
}
var promises = [];
for (var i=0; i<10; i++){
promises.push(createPromiseReturningFn(i));
}
function doWork(){
if (!promises.length)
return;
var promise = promises.shift();
promise().then(
doWork
);
}
doWork();
</script>
</head>
<body>
</body>
</html>



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Попробуйте использовать асинхронную функцию и повторите промисы в цикле for...of: