Простыми словами, обещание — это место для значения, которое будет доступно когда-нибудь позже.
Метод Promise.all() принимает на вход итерабельную таблицу обещаний и возвращает одно обещание, которое разрешается в массив результатов входных обещаний. Возвращаемое обещание будет выполнено, когда все входные обещания будут выполнены, или если входная итерация не содержит обещаний. Отказ произойдет немедленно, если любое из входных обещаний откажет или не-обещание выдаст ошибку, и будет отклонено с этим первым сообщением об отказе / ошибке.
Попробуйте это сделать по адресу — https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all.
Обещания полезны при обработке асинхронных операций.
Promise.all()
— это встроенный помощник, который принимает массив обещаний (или, как правило, итерабельную переменную). Функция возвращает обещание:
const allPromise = Promise.all([promise1, promise2, ...]);
Затем вы можете извлекать разрешенные значения обещаний, используя синтаксис then
-able:
allPromise.then(values => {
values; // [valueOfPromise1, valueOfPromise2, ...]
}).catch(error => {
error; // rejectReason of any first rejected promise
});
или синтаксис async/await
:
try { const values = await allPromise;
values; // [valueOfPromise1, valueOfPromise2, ...]
} catch (error) {
error; // rejectReason of any first rejected promise
}
Если все обещания успешно разрешены, то allPromise
выполняет массив, содержащий выполненные значения отдельных обещаний. Порядок обещаний в массиве имеет значение — вы получите выполненные значения в этом порядке.
Но если хотя бы одно обещание отклоняется, то allPromise
отклоняется сразу же (не дожидаясь разрешения других обещаний) с той же причиной.