Как положить результаты выполнения Promise в массив?

Есть функция F, которая возвращает Promise

Нужно в цикле вызвать функцию F 10 раз и положить результаты выполнения в массив results После этого нужно продолжить работу с массивом results.

Как это можно реализовать? Заранее спасибо


Ответы (2 шт):

Автор решения: Alex Krass

Можно через Promise.all дождать завершения всех запросов и дальше в обработчике вы получите массив результатов каждого из Promise.

Promise.all([
  // Массив из Promise элементов
  fetch('https://jsonplaceholder.typicode.com/todos/1').then(response => response.json()),
  fetch('https://jsonplaceholder.typicode.com/todos/1').then(response => response.json())
]).then(results => {
  console.log(results);
});

→ Ссылка
Автор решения: fortavey
let results = [];
function foo(index){
  return new Promise((resolve, reject) => {
      resolve(index);
  });
}
for(let i = 1; i < 11; i++){
  results.push(foo(i));
}
→ Ссылка