Como adicionar um delay em um loop de JavaScript

Neste artigo você vai aprender a como adicionar um delay em um loop de JavaScript, através de uma simples abordagem

adicionar um delay em um loop de JavaScript capa

Fala programador(a), beleza? Bora aprender mais sobre loops e JavaScript!

Em JS temos a função setTimeout para adicionar um intervalo de tempo entre nossas ações

Vamos utilizá-la para obter o que precisamos resolver neste artigo

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 120 aulas
  • 4 projetos
  • 9h 45min

Se adicionarmos a instrução diretamente a um loop o que acontece é que o primeiro intervalo é respeitado, mas os demais não

Pois a função setTimeout não bloqueia as próximas execuções, somente as atrasa

Então após o primeiro delay as próximas serão executadas imediatamente, por isso um loop com setTimeout não funciona

O que podemos fazer então? Utilizar async e await!

Veja um exemplo prático:

const timer = (seconds) =>  {
	let time = seconds * 1000
	return new Promise(res => setTimeout(res, time))
}

async function doSomething() {
  for (var i = 0; i < 10; i++) {
    console.log("Looping... " + i);
    await timer(2);
  }
}

doSomething();

Vamos entender o que acontece no código acima!

Primeiramente é criada a função que vai receber um tempo em segundos e vai esperar para executar as próximas linhas de código

Multiplicamos por 1000, pois a unidade de medida de setTimeout é milisegundos

A instrução de Promise faz com que o código seja totalmente executado para a próxima execução ocorrer

A segunda função é a que contém o async e await

Onde executamos o loop com o timer, que recebe a função que criamos anteriormente

Neste caso o loop faz 10 execuções e aguarda 2 segundos entre cada uma delas

Conclusão

Neste artigo você vai aprender a como adicionar um delay em um loop de JavaScript

Criamos uma função que adiciona uma Promise para esperar o código ser totalmente executado

A segunda função que aplica o loop, contém o async e await para esperar a função da Promise ser executada

E assim conseguimos pausar um tempo o código entre uma execução do loop e outra

Confira nossos cursos gratuitos no Youtube, com vídeos todos os dias! Se inscreva e ative o sininho para receber as notificações e aprender mais ainda sobre desenvolvimento web!

Veja também nosso catálogo de cursos na Udemy, todos com exercícios e projetos práticos, nas mais diversas tecnologias. O link acima contém um cupom de desconto para os cursos!

Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

1 Comentário
Oldest
Newest Most Voted
Gustavo Matos

como parar esse timer ?

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares