Fala galera! Há poucos dias um Twitter na conta oficial do projeto Node.js anunciou oficialmente…
Sleep function em JavaScript1 min read
Categoria: JavaScript Node.js
Fala meus nobres devs! Quando você pensa em parar a execução de uma rotina você pensa, normalmente, em algum método que faça com que o processador “pause” a execução da rotina. Em JavaScript, até o momento, não temos uma rotina nativa para disponibilizar esse recurso, porém podemos usar algumas estratégias para termos algo muito parecido com uma função sleep, como é outras linguagens.
JavaScript Vanilla (JS puro)
Se você está usando o Vanilla JS, em algum site, por exemplo, você pode criar sua funcão sleep da seguinte forma:
// função sleep
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds))
}
// chamando a função sleep com pausa de 2 segundos
const rotina_com_pausa = async () => {
await sleep(2000)
console.log('Pausa de 2 segundos')
}
rotina_com_pausa()
Com esta simples rotina acima usando a function setTimeout você consegue criar sua função sleep 🙂
Node.js: fica muito mais fácil
Em Node.js você pode usar o recurso de promisify para retornar uma promise do método setTimout de forma transparente e com isso o mesmo código acima, passa a ser:
const { promisify } = require('util')
// função sleep
const sleep = promisify(setTimeout)
// chamando a função sleep com pausa de 2 segundos
const rotina_com_pausa = async () => {
await sleep(2000)
console.log('Pausa de 2 segundos')
}
rotina_com_pausa()
Importante!
Está rotina não irá parar a execução do seu sistema JavaScript! Ela irá parar apenas a function em que você está executando a sua rotina sleep.