0
작동하지 :자바 스크립트 비동기 기능은 내가 예를 들어 다음과 같은 한
var first=setInterval(function() {
var t=new Date();
console.log("Started: ",t);
sleep(function(){
var t=new Date();
console.log("Finished: ",t);
});
},500);
function sleep(callback){
for (var i=0;i<10000000000;i++){
//waiting
}
callback();
}
이럴 잠이 비동기 적으로 실행해야하지만 나던 출력 :
Started: Mon Mar 04 2013 12:31:10 GMT+0200 (EET)
Finished: Mon Mar 04 2013 12:31:23 GMT+0200 (EET)
Started: Mon Mar 04 2013 12:31:24 GMT+0200 (EET)
Finished: Mon Mar 04 2013 12:31:36 GMT+0200 (EET)
Started: Mon Mar 04 2013 12:31:36 GMT+0200 (EET)
* "IMHO sleep은 비동기 적으로 실행되어야합니다"* 왜? 비동기로 만들려고 아무것도하지 않았습니다. (즉,'setInterval' 콜백 내에서) –
JavaScript가 스레딩과 어떻게 작동하는지 오해했습니다. 모든 코드는 단일 스레드에서 실행되며 비동기 작업의 콜백은 스레드가 유휴 상태가되어 자신을 실행할 수 있기를 기다려야합니다. –