parfois, en tant que programmeur, on se retrouve dans une Situation où l’exécution du programme doit être interrompue pendant une courte période. Pour y parvenir, il existe différentes possibilités dans les différents langages de programmation. En JavaScript, depuis ES6, il est possible d’utiliser Promises à cette fin.
- implémenter une fonction Sleep
- exécuter une fonction avec retard
implémenter une fonction Sleep
pour suspendre quelques secondes en JavaScript, il suffit de définir une petite fonction D’aide. La fonction Sleep renvoie un objet Promise dont l’état est défini sur resolved après L’heure souhaitée, en millisecondes.function Sleep(milliseconds) {
return new Promise(resolve => setTimeout(resolve, milliseconds));
}
si vous souhaitez utiliser cette fonctionnalité, vous devez marquer votre fonction avec le mot-clé async. Sans async, il n’est pas permis d’utiliser la commande await. Une application exemplaire montre la fonction suivante:async function test() {
console.log("Vor der sleep-Funktion");
await Sleep(3000); // Pausiert die Funktion für 3 Sekunden
console.log("Nach der Sleep Funktion");
}
la fonction appelle la fonction Sleep. À l’aide de await, l’exécution de la fonction s’arrête pendant la durée spécifiée. Sans await, la fonction continuerait à fonctionner car elle n’attendrait pas la résolution de L’objet Promise renvoyé par Sleep.
exécuter une fonction avec retard
pour exécuter une fonction après un certain temps D’attente, il existe la fonction setTimeout. Dans setTimeout, on passe une fonction appelée Callback à exécuter. Cette fonction est exécutée après l’heure spécifiée. Alors définissez-vous une fonction à appeler:function callback() {
console.log("Callback Funktion wird aufgerufen");
}
vous pouvez maintenant utiliser setTimeout pour appeler la fonction que vous venez de créer avec le délai spécifié. Cependant, il convient de noter que le Code suivant est exécuté sans attendre:setTimeout(callback, 3000); //Ruft die Callback-Funktion nach 3 Sekunden auf
console.log("Test"); //Wird sofort, ohne Wartezeit ausgeführt
sinon, il est possible de passer une expression de fonction comme Argument pour setTimeout. Vous pouvez donc appeler setTimeout comme suit:setTimeout(function() {
console.log("Callback Funktion wird aufgerufen");
}, 3000);
l’avantage ici est qu’il n’y a pas besoin de définir une nouvelle fonction et on voit immédiatement quel bloc de code sera exécuté après le délai.