JavaScript: entenda as Promises
Confira nossas dicas para você dominar as Promises no JavaScript!
JavaScript é uma linguagem de programação síncrona. Isso quer dizer que somente um comando é executado por vez, seguindo uma ordem. No caso de chamadas HTTP, um comando é considerado “executado” quando a chamada é feita e não quando ela obtém uma resposta – isso é uma Promise!
Por definição (MDN):
Promise é um objeto usado para processamento assíncrono. Uma Promise (de “promessa”) representa um valor que pode estar disponível agora, no futuro ou nunca.
Essa “Promessa” funciona como as promessas da vida real, por exemplo. Vamos supor que você fez uma promessa de começar a fazer academia na segunda-feira. Na verdade, você não sabe se vai conseguir fazer isso ou não, ou seja, essa promessa pode ser cumprida ou não.
Estes são os estados da sua promessa:
Pendente: Você não sabe se vai conseguir começar a fazer academia.
Cumprida: Você começou a fazer academia.
Não cumprida: Você não começou a fazer academia.
Então, uma promessa começa no estado pendente e ela pode ser ou não cumprida. No JavaScript é a mesma coisa, porém com os estados
pending
, fulfilled
e rejected
. Vamos ver exemplos:Dessa maneira, após 5 segundos, a minha Promise vai passar para o estado de
fulfilled.
Caso eu altere o valor da variável comeceiNaAcademia
para false
, essa Promise vai ser rejeitada, gerando um erro no console do navegador.
E quando eu preciso manipular o resultado de uma Promise?
O objeto Promise provê alguns métodos para manipularmos o resultado de uma Promise. São eles:
then(onFulfilled, onRejected)
: O método then()
é usado para definir um callback que será chamado quando uma Promise for finalizada.
catch(onRejected)
: O método catch()
é usado para definir um callback que será chamado caso a Promise seja rejeitada.
finally(onFinally)
: O método finally()
é usado para definir um callback que sempre será chamado quando uma Promise tiver um resultado, seja ele um sucesso ou uma falha.
Veja o exemplo:
E aí? Entendeu como funcionam as Promises no JavaScript? Não é tão difícil, né? Caso esteja interessado em JavaScript não deixe de dar uma olhada no nosso post JavaScript: tudo que você precisa saber em 2021.