2016-04-17 15 views
-2

Wartet die setTimeout() - Funktion, bis die darin enthaltene Funktion ausgeführt wird, bevor sie zur nächsten Zeile (der Zeile AFTER "setTimeout()") übergeht? ODER, setzt setTimeout() gerade den Code durch, während der Timer für die Funktion gesetzt wird, die nach "x" Zeit aktiviert werden soll? Ich frage das, weil ich nicht weiß, ob die Funktion "setTimeout()" sich selbst beendet, indem sie einen Timer für eine andere Funktion setzt, bevor sie fortfährt (die Funktion innerhalb von "setTimeout()" muss nicht abgeschlossen sein) ODER, wenn die Funktion "setTimeout()" die Ausführung der nächsten Zeile stoppt, bis die Funktion "setTimeout()" abgeschlossen ist.Wartet die Funktion setTimeout() auf die Ausführung der Funktion, bevor sie zur nächsten Zeile weitergeht?

+3

Dies ist eine doppelte: http://stackoverflow.com/questions/10258012/does-javascript-settimeout-stop-other -script-Ausführung – symlink

Antwort

2

Es wartet nicht. Der Timer startet, dann wird nächste Zeile ausgeführt wird, dann ist irgendwann später SetTimeout Funktion Feuer

0

setTimeout() asynchron, so dass die nächste Zeile sofort ausgeführt wird

1

Nein, setTimeout nicht die Ausführung der nächsten Zeile blockieren. Es richtet eine Funktion ein, die nach Ablauf des angegebenen Timeouts aufgerufen wird.

Führen Sie das folgende Snippet für eine Demo:

setTimeout(function() { 
 
    document.getElementById('log').innerHTML += 'timeout!!<br>'; 
 
}, 1000); 
 

 
document.getElementById('log').innerHTML += 'hello world<br>';
<div id="log"></div>

Verwandte Themen