다음 코드는 1 초마다 날짜를 표시 한 다음 중지합니다.JavaScript setInterval 및 setTimeout
(function() {
var i = setInterval(function() {
console.log(new Date());
}, 1000);
console.log("Hi");
setTimeout(function() {
clearInterval(i);
}, 3000);
console.log("Hola");
})();
출력 :
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)
그러나 Hi
및 Hola
가 먼저 표시되는 이유를 모르겠어요. 또한 setTimeout
이 실행되는 이유는 무엇입니까? setInterval
이 1 초마다 실행되고 다른 어떤 것도 실행될 수 있다고 가정하지 않습니다. (위의 코드는 작성된 순서대로 실행됩니까?) 고마워요.
모든 코드가 즉시 실행됩니다. – Esailija
아니요.'setInterval'과'setTimeout'이 즉시 반환되고 함수가 계속됩니다. 나중에 해당 시간 제한이 만료되어 해당 호출에 제공 한 코드를 실행하면 다른 코드 실행이 중단됩니다. – sje397
@ sje397 실행중인 코드의 실행이 일시 중지되지 않습니다. 대신 자바 스크립트가 실행 중이면 시간 초과 이벤트가 지연됩니다. –