Encodera

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

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

Справочник JavaScript

Promise.prototype.finally

Выполняет действие после промиса — и при успехе, и при ошибке.

Доступно с: ES2018

Синтаксис

promise.finally(onFinally)

Параметры

ПараметрТипОписание
onFinallyFunctionФункция без аргументов, которая выполняется в любом случае.

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

PromiseПромис с тем же результатом или ошибкой, что и исходный.

Примеры

Скрыть индикатор загрузки в любом случае:

console.log('loading...');
 
Promise.reject(new Error('Timeout'))
  .catch((error) => console.log('Error:', error.message))
  .finally(() => console.log('loading done'));

Результат:

loading...
Error: Timeout
loading done

Примечания

Функция в finally() не получает ни результата, ни ошибки и не меняет их. Аналог для await — блок finally в try...catch.

См. также

  • Promise.prototype.then — Задаёт, что сделать с результатом промиса.
  • Promise.prototype.catch — Обрабатывает ошибку промиса.
  • try...catch — Перехватывает ошибки, чтобы программа не остановилась.

В учебнике

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

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

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