Расскажи про Promise: статусы, статические методы (all, allSettled, any, race).
Answer from AI
sobes.tech AI
Promise — это объект в JavaScript, представляющий результат асинхронной операции, который может быть доступен сейчас, позже или никогда.
Статусы Promise:
- pending (ожидание) — начальное состояние, операция еще не завершена.
- fulfilled (выполнено) — операция успешно завершена, доступен результат.
- rejected (отклонено) — операция завершилась с ошибкой.
Статические методы Promise:
-
Promise.all(iterable)— принимает массив (или другой итерируемый объект) промисов и возвращает новый промис, который:- выполняется, когда все промисы из массива выполнены успешно,
- или отклоняется, если хотя бы один промис отклонён.
-
Promise.allSettled(iterable)— возвращает промис, который выполнится, когда все промисы завершатся (независимо от результата), и вернёт массив объектов с результатами каждого промиса (статус и значение или причина). -
Promise.any(iterable)— возвращает промис, который выполнится, как только любой из промисов выполнится успешно. Если все промисы отклонены, возвращает AggregateError. -
Promise.race(iterable)— возвращает промис, который выполнится или отклонится, как только первый промис из массива выполнится или отклонится.
Пример использования Promise.all:
const p1 = Promise.resolve(1);
const p2 = Promise.resolve(2);
const p3 = Promise.resolve(3);
Promise.all([p1, p2, p3])
.then(values => console.log(values)) // [1, 2, 3]
.catch(error => console.error(error));