Как работает then в промисах?

Then - это метод объекта Promise в JavaScript, который позволяет нам обрабатывать результат успешного выполнения промиса или ошибки после выполнения асинхронной операции.

Синтаксис метода then:

promise.then(onFulfilled, onRejected)

где:
- onFulfilled - функция, которая будет выполнена при успешном выполнении промиса. Она принимает значение, которое было передано при вызове resolve.
- onRejected - функция, которая будет выполнена, если промис завершится ошибкой. Она принимает значение ошибки, переданной при вызове reject.

Пример использования метода then:

function asyncOperation() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const success = true;
      if (success) {
        resolve("Operation successful");
      } else {
        reject("Operation failed");
      }
    }, 2000);
  });
}

asyncOperation()
  .then((result) => {
    console.log(result); // "Operation successful"
  })
  .catch((error) => {
    console.log(error); // "Operation failed"
  });

В примере выше мы создаем промис asyncOperation, который завершается успешно через 2 секунды. При вызове then мы указываем функцию для обработки успешного выполнения промиса и функцию для обработки ошибки в случае неудачного выполнения.

Таким образом, метод then в промисах в JavaScript играет ключевую роль в обработке результатов асинхронных операций, позволяя нам управлять выполнением кода после завершения промиса в зависимости от его результата.