Le code suivant affiche la date toutes les 1 s, puis s'arrête.JavaScript setInterval et setTimeout
(function() {
var i = setInterval(function() {
console.log(new Date());
}, 1000);
console.log("Hi");
setTimeout(function() {
clearInterval(i);
}, 3000);
console.log("Hola");
})();
Sortie:
Hi
Hola
Wed Oct 24 2012 13:35:27 GMT+0200 (CEST)
Wed Oct 24 2012 13:35:28 GMT+0200 (CEST)
Wed Oct 24 2012 13:35:29 GMT+0200 (CEST)
Mais je ne sais pas pourquoi Hi
et Hola
sont affichés en premier. En outre, pourquoi setTimeout
est exécuté? Il n'est pas supposé que setInterval
est exécuté toutes les secondes et rien d'autre ne peut être exécuté? (Est-ce que le code ci-dessus s'exécute dans l'ordre dans lequel il est écrit?) Merci.
Tout le code s'exécute tout de suite. – Esailija
N ° 'setInterval' et' setTimeout' retournent immédiatement, et votre fonction continue. L'exécution de l'autre code sera interrompue lorsque le délai expire à une date ultérieure pour exécuter le code que vous avez fourni à ces appels. – sje397
@ sje397 L'exécution du code courant ne sera pas suspendue. Au lieu de cela, les événements temporisés sont retardés si javascript est en cours d'exécution à ce moment. –