In diesem Artikel werden hauptsächlich die Probleme vorgestellt, auf die bei der Verwendung der Abschlussfunktion von setTimeout(0) von Javascript geachtet werden muss.
setTimeout wird häufig verwendet, um die Ausführung von zu verzögern Eine bestimmte Funktion. Die Verwendung ist wie folgt:
Code kopieren Der Code ist wie folgt:
setTimeout(function(){ … }, timeout);
Manchmal setTimeout(function. ..,0) wird zum Beispiel für die asynchrone Verarbeitung verwendet:
Code kopieren Der Code lautet wie folgt:
function f(){ … // get ready setTimeout(function(){ …. // do something }, 0); return …; }
Vorher der durch setTimeout festgelegte Funktionsprozessor
Seien Sie besonders vorsichtig, wenn Sie die asynchrone Verarbeitung verwenden, insbesondere wenn Sie Abschlussfunktionen verwenden 🎜>Code kopieren
Code wie folgt:
Für Schüler, die diese Methode zum ersten Mal verwenden, denken sie vielleicht, dass das Programm 0...9 druckt, aber Das Ergebnis wird tatsächlich 10 10s ausgeben. Das Problem besteht darin, dass nach Abschluss der Schleife die Funktion ausgeführt wird und i zu 10 wird, was 10 in console.log(i) entspricht! Wenn Sie 0...9 drucken möchten, können Sie die Art und Weise ändern und Funktionsparameter verwenden, um 0...9 zu speichern (tatsächlich werden auch Verschlüsse verwendet):
for(var i = 0 ; i < 10; i++){ setTimeout(function(){ console.log(i); }, 0); }
Kopieren Sie den Code
Der Code lautet wie folgt: