Was macht setTimeout, wenn es auf 0 Millisekunden gesetzt ist?
In JavaScript,setTimeout(callback, delay)
bedeutet "callcallback
nachdelay
Millisekunden ". Aber was ist, wenndelay
ist0
? Sollte es @ anrufcallback
jetzt sofort
Ich bin verwirrt über das, was ich sehe, wenn ich den folgenden Code ausführe:
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');
}
Dies protokolliert Folgendes in der Konsole:
Ich habe erwartet, @ zu sehAAA
hat sich viel früher angemeldet. Es war Zeit, 4000 andere Aufrufe an @ auszuführconsole.log
vor einer Funktion, die sofort aufgerufen werden sollte.
Kann jemand erklären, wassetTimeout
tut, wenn die Verzögerung auf 0 Millisekunden eingestellt ist?