Comment mettre en veille vos fonctions JavaScript

Apprenez à mettre votre fonction en veille pendant un certain temps en JavaScript

Parfois, vous souhaitez que votre fonction suspende l'exécution pendant une durée fixe de secondes ou de millisecondes.

Dans un langage de programmation comme C ou PHP, vous appelleriezsleep(2)pour arrêter le programme pendant 2 secondes. Java aThread.sleep(2000), Python atime.sleep(2), Go atime.Sleep(2 * time.Second).

JavaScript n'a pas de fonction de veille native, mais grâce à l'introduction de promesses (et async / await dans ES2018) nous pouvons implémenter cette fonctionnalité de manière très agréable et lisible, pour faire dormir vos fonctions:

const sleep = (milliseconds) => {
  return new Promise(resolve => setTimeout(resolve, milliseconds))
}

ou, dans Node.js, plus simple:

const { promisify } = require('util')
const sleep = promisify(setTimeout)

En savoir plus surpromettre

Vous pouvez maintenant l'utiliser avec lethenrappeler:

sleep(500).then(() => {
  //do stuff
})

Ou utilisez-le dans une fonction asynchrone:

const doSomething = async () => {
  await sleep(2000)
  //do stuff
}

doSomething()

N'oubliez pas qu'en raison du fonctionnement de JavaScript (en savoir plus surla boucle d'événements), cela ne suspend pas l'exécution entière du programme comme cela pourrait se produire dans d'autres langues, mais à la place, seule votre fonction se met en veille.

Vous pouvez appliquer le même concept à une boucle:

const list = [1, 2, 3, 4]
const doSomething = async () => {
  for (const item of list) {
    await sleep(2000)
    console.log('🦄')    
  }
}

doSomething()

Téléchargez mon gratuitManuel du débutant JavaScript


Plus de tutoriels js: