Promise.prototype.then
Задаёт, что сделать с результатом промиса.
Доступно с: ES2015
Синтаксис
promise.then(onFulfilled, onRejected)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| onFulfilled | Function | Функция, которая получает результат промиса. |
| onRejected | Function | Необязательный. Функция для ошибки; обычно вместо неё используют 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 и цепочки.