JavaScript·100 вопросов

Как создать Promise?

Ответ

Создание промиса в JavaScript осуществляется с помощью специального конструктора new Promise(). Этот конструктор принимает в качестве аргумента функцию исполнитель, которую разработчики часто называют экзекутором. Эта функция автоматически запускается сразу после создания промиса и принимает два обязательных параметра, которые сами по себе являются функциями: resolve и reject.

Первая функция, resolve, используется для успешного завершения операции. Когда асинхронная задача в теле экзекутора успешно выполнена, вы вызываете resolve(value), передавая ей полученный результат. Это переводит промис из состояния ожидания в состояние исполнения, делая значение доступным для метода then(). Вторая функция, reject, вызывается в том случае, если в процессе выполнения задачи произошла ошибка или условие не было выполнено. Вы вызываете reject(error), передавая объект ошибки, что переводит промис в состояние отклонения и активирует обработчики ошибок.

Помимо ручного создания промисов через конструктор с помощью экзекутора, JavaScript предоставляет полезные статические методы для быстрого создания готовых промисов. Например, метод Promise.resolve(value) возвращает промис, который уже находится в состоянии fulfilled с переданным значением. Это бывает полезно, когда вам нужно унифицировать интерфейс функции, которая в некоторых случаях может возвращать синхронное значение, а в других — асинхронный промис.

Аналогичным образом работает метод Promise.reject(error), который сразу создает и возвращает отклоненный промис с указанной причиной ошибки. Использование этих статических методов значительно упрощает написание вспомогательного кода и позволяет эффективно управлять потоком асинхронных данных в современных приложениях без лишнего бойлерплейта.

Полезен ли этот ответ?

Другие вопросы этой темы

Связанные вопросы из других тем