В JavaScript обещание — это объект, который представляет возможное завершение (или сбой) асинхронной операции и ее результирующее значение. Обещание может находиться в одном из трех состояний:
- В ожидании: исходное состояние; ни выполнено, ни отвергнуто.
- Выполнено: операция завершена успешно, и обещание имеет результирующее значение.
- Отклонено: операция не удалась, а обещание имеет причину сбоя.
Промисы обычно используются для обработки асинхронных операций, таких как выборка данных с сервера, чтение и запись файлов и выполнение вызовов API. Используя промисы, вы можете обрабатывать результат асинхронной операции, как только он будет готов, не блокируя основной поток выполнения.
Вот пример того, как создать промис в JavaScript:
const promise = new Promise((resolve, reject) => { // asynchronous operation const result = fetch('https://example.com/api/data'); if (result) { resolve(result); } else { reject('Error: Failed to fetch data'); } }); promise.then(result => { console.log(result); }).catch(error => { console.error(error); });
В приведенном выше примере промис создается с помощью конструктора new Promise()
, который принимает функцию с двумя параметрами: resolve
и reject
. resolve
вызывается при успешном выполнении асинхронной операции, а reject
вызывается при возникновении ошибки. Обещание разрешается с результатом операции с использованием resolve(result)
и отклоняется с сообщением об ошибке с использованием reject(error)
.
Вы можете использовать метод then()
в Promise для обработки выполненного состояния и метод catch()
для обработки отклоненного состояния. Метод then()
использует функцию обратного вызова, которая получает разрешенное значение обещания, а метод catch()
использует функцию обратного вызова, которая получает причину отклонения.