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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage