Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Promise.prototype.then

Задаёт, что сделать с результатом промиса.

Доступно с: ES2015

Синтаксис

promise.then(onFulfilled, onRejected)

Параметры

ПараметрТипОписание
onFulfilledFunctionФункция, которая получает результат промиса.
onRejectedFunctionНеобязательный. Функция для ошибки; обычно вместо неё используют catch().

Возвращаемое значение

PromiseНовый промис с результатом функции — поэтому then() можно связывать в цепочку.

Примеры

Получить результат:

Promise.resolve(21).then((n) => console.log(n * 2));

Результат:

42

Цепочка: каждый then получает результат предыдущего:

Promise.resolve(2)
  .then((n) => n * 10)
  .then((n) => n + 1)
  .then((n) => console.log(n));

Результат:

21

Примечания

Функция в then() выполняется не сразу, а после текущего кода, даже если промис уже выполнен. Если она возвращает промис, следующий then() дождётся его.

См. также

  • Promise.prototype.catch — Обрабатывает ошибку промиса.
  • Promise.prototype.finally — Выполняет действие после промиса — и при успехе, и при ошибке.
  • await — Ждёт результата промиса и возвращает его значение.

В учебнике

  • Промисы — Промисы в JavaScript: состояния промиса, then, catch, finally, создание промиса через new Promise и цепочки.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.