2017-05-31 12 views
1

Run in Konsole nächsten CodeJavascript, Javascript Fehler

setTimeout(function(){ 
    console.log(1); 
}, 2); 
console.log(2); 
setTimeout(function(){ 
    console.log(3); 
}, 1); 

Warum 4 Werte, wenn nur 3? console

+2

Dieser Code nicht 4 Werte erzeugt. [Hier ist der Beweis, dass es nicht so ist.] (Https://jsfiddle.net/ypmoy23L/) Etwas anderes druckt die '20' aus. Als zukünftige Referenz sollten Sie keine Konsolenausgabe oder anderen Text als Bilder verwenden. Kopieren Sie den Text und fügen Sie ihn in Ihre Frage ein. Zum einen macht es mehr durchsuchbar. –

+0

Sie können sagen, dass etwas anderes 20 durch den kleinen Pfeil daneben ausgibt. – dav

+2

Ihr Konsolenprotokoll zeigt etwas an, das als "Rückgabewert" bezeichnet wird. Der Rückgabewert eines Timeouts ist die ID für dieses Zeitlimit. – evolutionxbox

Antwort

3

Sie erhalten einen Rückgabewert von setTimeout in der Konsole.

Der zurück timeoutID ist ein numerischer, nicht-Null-Wert, der den Zeitgeber durch den Aufruf von setTimeout(); Dieser Wert übergeben werden können, um clearTimeout() erstellt identifiziert den Timeout abzubrechen.

Es kann hilfreich sein, sich bewusst sein, dass setTimeout() und setInterval() teilen die gleichen Pool von IDs, und dass clearTimeout() und clearInterval() technisch austauschbar verwendet werden können. Aus Gründen der Übersichtlichkeit sollten Sie jedoch immer versuchen, sie vergleichen Verwirrung zu vermeiden, wenn Ihr Code Aufrechterhaltung

console.log(setTimeout(function(){ 
 
    console.log('#' + 1); 
 
}, 2)); 
 
console.log('#' + 2); 
 
console.log(setTimeout(function(){ 
 
    console.log('#' + 3); 
 
}, 1));