Promise.prototype.finally
Выполняет действие после промиса — и при успехе, и при ошибке.
Доступно с: ES2018
Синтаксис
promise.finally(onFinally)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| onFinally | Function | Функция без аргументов, которая выполняется в любом случае. |
Возвращаемое значение
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 и цепочки.