function test(){
setTimeout(function(){
var now=new Date();
while((new Date()).getTime() < now.getTime()+5000){ }
console.log('p')
}, 0);
}
test();
test(); //it takes 10 seconds,the second test function runs after the first finished.
誰かが私にそれをどのように説明できますか?あなたがsetTimeout
の内側function
を渡し、それを呼び出すたび、渡された関数はミリ秒単位で供給される遅延に基づいてcallBack
キューにプッシュされます、のでなぜsetTimeoutコードがブロックされたのですか?
のJavaScriptを「マルチスレッド」ではありません。関数はパラレルではなくシリアルで実行されます。 –