在JavaScript中,setTimeout(callback, delay)意思是" callback在delay毫秒之后调用".但是如果delay是的话0呢?它应该立即打电话callback吗?
我很困惑因为我在运行以下代码时看到的内容:
setTimeout(function() {
console.log('AAA');
}, 0); // Call this in 0 milliseconds
for (i = 0; i < 1000; i++) {
console.log('BBB');
}
for (i = 0; i < 1000; i++) {
console.log('CCC');
}
for (i = 0; i < 1000; i++) {
console.log('DDD');
}
for (i = 0; i < 1000; i++) {
console.log('EEE');
}
Run Code Online (Sandbox Code Playgroud)
这会将以下内容记录到控制台:
我希望看到AAA记录的速度要早得多.在console.log应该立即调用的函数之前,有时间执行4000个其他调用.
有人可以解释setTimeout当延迟设置为0毫秒时正在做什么吗?