.finally()

Время чтения: меньше 5 мин

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

Кратко

Секция статьи "Кратко"

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

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

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

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

Как пишется

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

        
        
          
        
      

Как понять

Секция статьи "Как понять"

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

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

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

На практике

Секция статьи "На практике"

nlopin

Секция статьи "nlopin"

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