Neste artigo você vai aprender a como esperar uma função terminar para continuar, utilizando a linguagem JavaScript

esperar uma função terminar para continuar capa

Fala programador(a), beleza? Bora aprender mais sobre funções em JavaScript!

Em JS temos um recurso que é chamado de Promise, as promessas nos permitem lidar com código assíncrono

Dentro delas temos um outro recurso que é são as async functions

Que é outra maneira de trabalhar com promises, porém com uma abordagem simplificada e é o que utilizaremos

Primeiro uma breve introdução teórica:

  • async: a função que espera a outra executar;
  • await: a instrução que diz o que precisamos aguardar;

Agora veja no código:

const precisamosEsperar = () => {
   return new Promise(resolve => {
   setTimeout(function() {
      console.log("Espere meu resultado!")
      resolve(5)
    }, 1000)
  })
}

const outraFuncao = async () => {
  const x = await precisamosEsperar()
  
  console.log(x)
}

outraFuncao()

Primeiramente há uma estruturação de uma função com uma Promise, criamos um delay propositalmente com setTimeout, mas poderia ser uma requisição HTTP, por exemplo

Na segunda função temos a presença do async, ou seja, ela pode utilizar o await para esperar a primeira

Que é o que fazemos para esperar o resultado de x, que vem da primeira função, em resolve

O console.log espera o resultado de x chegar para ser executado

Deixe um comentário contando o que achou deste artigo 🙂

Quer aprender mais sobre JavaScript? Confira o vídeo abaixo:

Conclusão

No artigo de hoje você aprendeu a esperar uma função terminar para continuar em JavaScript

Utilizamos um recurso de Promise, chamado async/await

Com ele é possível esperar um determinado resultado que chega em um ponto futuro no nosso código

E só então continuar a função, já utilizando este resultado que vem um tempo depois

Está buscando a sua primeira vaga como Programador? Confira o nosso treinamento completo clicando aqui.

Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!

Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!

Subscribe
Notify of
guest

0 Comentários
Inline Feedbacks
View all comments