JS Promise.all - удобный способ обработки нескольких асинхронных операций в JavaScript
JS Promise.all это метод, который позволяет объединить несколько промисов и дождаться их выполнения, а затем получить результаты выполненных промисов в виде массива.
Пример использования Promise.all:
javascript
const promise1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Результат промиса 1');
}, 2000);
});
const promise2 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Результат промиса 2');
}, 1000);
});
Promise.all([promise1, promise2])
.then(results => {
console.log(results); // ['Результат промиса 1', 'Результат промиса 2']
})
.catch(error => {
console.error(error);
});
В данном примере создаются два промиса: `promise1` и `promise2`. Оба промиса выполняются через определенное время и возвращают различные результаты.
Затем, используя метод `Promise.all`, мы передаем массив с этими промисами. Метод `Promise.all` ждет, пока все промисы из массива выполнятся, и затем возвращает массив с результатами выполненных промисов.
В блоке `then` мы получаем результаты выполненных промисов и выводим их в консоль.
Если хотя бы один из промисов из переданного массива завершится с ошибкой, метод `Promise.all` вызовет блок `catch`, и мы сможем обработать ошибку.
Таким образом, `Promise.all` позволяет объединить и дождаться выполнения нескольких промисов, что может быть удобно, когда требуется выполнить несколько асинхронных операций одновременно и получить их результаты в определенной последовательности.