В 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() использует функцию обратного вызова, которая получает причину отклонения.