J'ai un setInterval
appelant une boucle qui affiche une animation.Exécution du code après clearInterval
Lorsque I clearInterval
en réponse à une entrée utilisateur, il y a éventuellement un ou plusieurs rappels de boucle dans la file d'attente. Si je mets un appel de fonction directement après l'instruction clearInterval
, l'appel de fonction se termine d'abord (en imprimant quelque chose à l'écran), puis un rappel de boucle en file d'attente s'exécute, effaçant ce que je voulais imprimer.
Voir le code ci-dessous.
function loop() {
// print something to screen
}
var timer = setInterval(loop(), 30);
canvas.onkeypress = function (event) {
clearInterval(timer);
// print something else to screen
}
Quelle est la meilleure façon de gérer cela? Mettre un retard sur le // print something else to screen
? Faire la nouvelle impression dans la boucle?
Modifier: Merci pour les réponses. Pour référence future, mon problème était que l'événement qui déclenchait l'impression supplémentaire était enfoui dans la boucle, donc une fois cette opération exécutée, le contrôle était retourné à la boucle inachevée, qui l'écrasait ensuite. À votre santé.