skip to main content

Promise. Метод finally

js

Эта статья связана с понятием Promise

Кратко 🔗

Метод finally используют для выполнения кода при завершении промиса. Код выполнится как при переходе промиса в состояние fulfilled, так и в rejected.

Метод принимает один аргумент:

  • onDone — функция-колбэк, которая будет вызвана при завершении промиса

Возвращает новый промис.

Как пишется 🔗

// getPasswords() — асинхронная функция, которая возвращает промис
getPasswords().finally(function () {
// выполнится, когда операция завершилась успехов или ошибкой
})

Как понять 🔗

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

Метод используют для того, чтобы избежать повторения кода между then и catch. Обычно такой код занимается уборкой после операции — скрывает индикаторы загрузки, закрывает меню и т.д.

Колбэк у finally не содержит параметров. Это следствие того, что колбэк будет вызван как при успехе, так и при ошибке.

  • 🔧 Техническая деталь

    Под капотом finally — это вызов then, где оба колбэка onDone:

    finally(onDone)then(onDone, onDone)

В работе 🔗

🛠 Всегда завершайте свои цепочки промисов вызовом метода catch. Если в одной из операций в цепочке произойдет ошибка и она не будет обработана, то JavaScript выведет сообщение Uncaught (in promise) Error в консоль разработчика и перестанет работать на всей странице.