# Como funciona Promise.finally() no JavaScript?

> Neste drop exemplifico o funcionamento do método .finally() em promises do JavaScript.

- Canonical: https://betomuniz.com/blog/como-funciona-promise-finally-no-javascript
- Published: 2020-10-12
- Updated: 2026-04-21T17:44:00.000Z
- Language: pt
- Tags: JavaScript

---

Introduzido no ES2018, **Promises** agora podem usufruir de um novo recurso para controlar o fluxo de operações através do método `.finally()`.

A proposta do `Promise.finally()` é executar operações independentemente da execução dos métodos `.then()` e `.catch()`.

Essa proposta é muito semelhante com a abordagem [try {} catch {} finally {}](https://betomuniz.com/drops/try-catch-finally-statements-no-javascript), a diferença é que a declaração `finally {}` consegue retornar valores e `Promise.finally()` não, `Promise.finally()` consegue retornar apenas exceções via `throw`.

```javascript
let loading = true

fetch('https://...')
  .then((response) => { ... })
  .catch((error) => { ... })
  .finally(() => { loading = false })
```

Legal, né?
