Junior
80
questionbank

Какие виды Promise ты знаешь?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Основные виды промисов в Node.js:

  • Basic Promise: Представляет собой контейнер для будущих значений или ошибок. Имеет три состояния: pending (ожидание), fulfilled (выполнено успешно), rejected (отклонено с ошибкой). Создается с помощью конструктора new Promise().

    javascript
  • Promise.resolve(): Создает промис, который немедленно переходит в состояние fulfilled с заданным значением.

    javascript
  • Promise.reject(): Создает промис, который немедленно переходит в состояние rejected с заданной причиной ошибки.

    javascript
  • Promise.all(): Принимает массив промисов и возвращает новый промис. Этот новый промис переходит в состояние fulfilled, когда все промисы в массиве успешно завершены. Значением будут массивы результатов в том же порядке, что и входные промисы. Если любой из промисов в массиве отклоняется, Promise.all() немедленно отклоняется с причиной первого отклоненного промиса.

    javascript
  • Promise.allSettled(): Принимает массив промисов и возвращает новый промис. Этот новый промис переходит в состояние fulfilled, когда все промисы в массиве либо успешно завершены (fulfilled), либо отклонены (rejected). Значением будет массив объектов, описывающих результат каждого промиса (состояние и значение/причина). В отличие от Promise.all(), немедленно не отклоняется.

    javascript
  • Promise.race(): Принимает массив промисов и возвращает новый промис. Этот новый промис переходит в состояние fulfilled или rejected с результатом/причиной первого промиса из массива, который либо успешно завершился, либо отклонился.

    javascript
  • Promise.any(): Принимает массив промисов и возвращает новый промис. Этот новый промис переходит в состояние fulfilled с значением первого промиса из массива, который успешно завершился. Если все промисы в массиве отклоняются, Promise.any() возвращает ошибку AggregateError, содержащую причины всех отклоненных промисов. Доступен начиная с Node.js 12.

    javascript