在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毫秒时正在做什么吗?