JS setTimout混淆-事件循环

时间:2019-03-11 03:25:52

标签: javascript

var start = new Date;
setTimeout(function(){
    var end = new Date;
    console.log('Time elapsed:', end - start, 'ms');   //Line4
}, 500);
while (new Date - start < 1000) {};  //Line 6

我知道输出是“经过时间:1002ms”,依此类推。第4行在第6行之后执行,因此“经过的时间”应大于1000。

我的困惑是为什么“经过的时间”是1500(1000+ 500)。 4号线有500ms的延迟。

enter image description here

0 个答案:

没有答案