Neste artigo você vai aprender o por qual motivo uma função assíncrona retorna Promise pending, vem entender melhor isso!
Fala programador(a), beleza? Bora aprender mais sobre promises e async functions!
Se você já trabalhou com funções assíncronas em JavaScript, pode ter se deparado com a situação em que a função retorna um objeto Promise com o status “pending” (pendente).
Isso pode parecer confuso à primeira vista, mas na verdade é um comportamento esperado quando se trabalha com funções assíncronas.
Neste artigo, vamos explicar por que uma função assíncrona retorna Promise pending e como você pode trabalhar com esse retorno para lidar com operações assíncronas em JavaScript.
O que é uma função assíncrona?
Antes de explicar o motivo pelo qual uma função assíncrona retorna pending, é importante entender o que é uma função assíncrona.
Em JavaScript, funções assíncronas são usadas para executar operações que podem levar um tempo indefinido para serem concluídas, como buscar dados de um servidor ou realizar uma animação em uma página web.
Uma função assíncrona é declarada utilizando a palavra-chave “async”, e dentro dela é possível utilizar a palavra-chave “await” para esperar o término de uma operação assíncrona antes de prosseguir com a execução do código.
Por que uma função assíncrona retorna Promise pending?
Quando uma função assíncrona é executada, ela retorna um objeto Promise que representa o valor que será retornado pela função no futuro.
Esse objeto Promise começa com o status “pending” (pendente), indicando que a operação ainda não foi concluída.
Isso ocorre porque as operações assíncronas geralmente levam um tempo indefinido para serem concluídas, e a função assíncrona precisa esperar o término da operação antes de retornar um valor.
Enquanto isso, o objeto Promise permanece no estado “pending”.
O objeto Promise só muda de estado quando a operação assíncrona é concluída.
Se a operação for bem-sucedida, o objeto Promise passa para o estado “resolved” (resolvido), e o valor retornado pela função é armazenado no objeto.
Caso contrário, o objeto Promise passa para o estado “rejected” (rejeitado), e o motivo do erro é armazenado no objeto.
Como lidar com uma função assíncrona que retorna Promise pending?
Para lidar com uma async que retorna Promise pending, é possível utilizar a palavra-chave “await” dentro de outra função assíncrona, aguardando a conclusão da operação antes de prosseguir com a execução do código.
Por exemplo, imagine que você tem uma função assíncrona que busca dados de um servidor:
async function buscarDadosServidor() { const resposta = await fetch('https://exemplo.com/api/dados'); const dados = await resposta.json(); return dados; }
Quando essa função é executada, ela retorna um objeto Promise com o status “pending”.
Para acessar o valor retornado pela função, é necessário aguardar a conclusão da operação assíncrona utilizando a palavra-chave “await”:
async function exibirDados() { const dados = await buscarDadosServidor(); console.log(dados); }
Nesse exemplo, a função exibirDados() chama a função buscarDadosServidor() utilizando a palavra-chave “await”, aguardando a conclusão da operação assíncrona antes de exibir os dados no console.
Quer aprender mais sobre React? Confira o vídeo abaixo:
Conclusão
Em resumo, uma função assíncrona retorna Promise pending porque as operações assíncronas podem levar um tempo indefinido para serem concluídas, e a função assíncrona precisa aguardar a conclusão da operação antes de retornar um valor.
O objeto Promise começa com o status “pending” e só muda de estado quando a operação assíncrona é concluída.
Para lidar com uma função assíncrona que retorna Promise pending, é possível utilizar a palavra-chave “await” dentro de outra função assíncrona, aguardando a conclusão da operação antes de prosseguir com a execução do código.
Esperamos que este artigo tenha esclarecido suas dúvidas sobre por que uma função assíncrona retorna Promise pending e como lidar com esse retorno em operações assíncronas em JavaScript.
Se tiver alguma dúvida ou sugestão de tema para os próximos artigos, fique à vontade para nos enviar uma mensagem.
Está buscando em evoluir como Programador? Confira o nossos cursos clicando aqui.
Nosso principal objetivo é tornar você um dev profissional que é capaz de resolver problemas de alta dificuldade e criar projetos complexos, através de uma metodologia planejada nos mínimos detalhes, após formar muitos outros desenvolvedores.
Cursos com vários projetos, exercícios, material apoio, comunidade de alunos e muito mais!