W3docs

Промисы в JavaScript

Promises in JavaScript are a powerful tool for managing asynchronous operations, enabling developers to write cleaner, more robust code. Understanding how to

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

Введение в промисы JavaScript

Промис в JavaScript представляет собой значение, которое может быть недоступно прямо сейчас, но будет доступно в какой-то момент в будущем. Он позволяет прикреплять обратные вызовы для обработки успешного выполнения или отказа асинхронной операции. Это значительное улучшение по сравнению со старыми методами, такими как вложенные обратные вызовы, которые часто называют «адом обратных вызовов».

Создание промиса

Для создания промиса используется конструктор Promise, который принимает функцию, известную как функция-исполнитель (executor). Аргументы resolve и reject в функции-исполнителе вы узнаете позже на этой странице.


javascript— editable

Обработка результатов с помощью .then, .catch и .finally

После создания промиса вы можете использовать методы .then, .catch и .finally для обработки успешных результатов или отказов.

Метод then

Метод .then используется для планирования выполнения обратного вызова, когда промис будет успешно выполнен (resolved). Для успешного выполнения промиса должен быть вызван метод resolve. Аргумент, переданный в метод resolve, станет окончательным значением промиса.


javascript— editable

В этом коде промис будет успешно выполнен только после завершения таймера на 1000 мс, и метод resolve будет вызван со значением "Done!".

Функция в части then выполняется только после вызова метода resolve.

Метод .catch

Метод .catch используется для обработки промиса в случае его отклонения (rejected). Это означает, что либо в блоке функции промиса возникнет ошибка, либо будет вызван метод reject.


javascript— editable

Метод .finally

Метод .finally позволяет выполнить код после того, как промис будет урегулирован (settled), независимо от его результата.


javascript— editable

Получение данных из API с помощью промисов

Этот пример показывает, как получить данные из удаленного API с помощью промисов.


javascript— editable

Цепочка промисов

Цепочка промисов — это мощная функция, которая позволяет связывать несколько асинхронных операций друг с другом. Подробнее см. в статье JavaScript: Промисы и цепочки.


javascript— editable

Интеграция async/await с промисами JavaScript

Эффективное использование async/await может упростить обработку асинхронных операций, сделав ваш код чище и понятнее, сохраняя при этом всю мощь промисов JavaScript. Вы узнаете о нем больше в разделе JavaScript async/await, но вот простой пример.


javascript— editable

Заключение

Умение работать с промисами в JavaScript критически важно для любого разработчика, стремящегося эффективно управлять асинхронными операциями. Понимание и использование описанных выше шаблонов и техник позволит разработчикам обеспечить читаемость, удобство поддержки и надежность своего кода на JavaScript.

Практика

Практика

Что такое промис в JavaScript?