SetTimeOut wird häufig verwendet, um die Ausführung einer Funktion zu verzögern und wird verwendet.
Die Codekopie lautet wie folgt:
setTimeout (function () {
…
}, Timeout);
Manchmal wird SetTimeout (Funktion…, 0) zur asynchronen Verarbeitung verwendet. Zum Beispiel:
Die Codekopie lautet wie folgt:
Funktion f () {
… // Machen Sie sich bereit
setTimeout (function () {
…. // etwas mach
}, 0);
zurückkehren …;
}
Vor dem von SetTimeout festgelegten Funktionsprozessor kehrt die Funktion F zurück.
Seien Sie besonders vorsichtig, wenn Sie die asynchrone Verarbeitung verwenden, insbesondere bei der Verwendung von Verschlussfunktionen.
Zum Beispiel:
Die Codekopie lautet wie folgt:
für (var i = 0; i <10; i ++) {
setTimeout (function () {
console.log (i);
}, 0);
}
Für Schüler, die diese Methode zum ersten Mal anwenden, denken sie wahrscheinlich, dass das Programm 0… 9 gedruckt wird, aber das Ergebnis ist, dass 10 tatsächlich 10 gedruckt sind;
Das Problem ist, dass nach Abschluss der Schleife die Funktion ausgeführt wird und ich 10 geworden ist und 10 in der Konsole verwendet wird. Log (i)!
Der Zweck des Hinzufügens besteht darin, 0… 9 auszudrucken, damit Sie die Methode ändern und Funktionsparameter verwenden können, um 0… .9 (eigentlich auch Verschlüsse zu verwenden):
Die Codekopie lautet wie folgt:
für (var i = 0; i <10; i ++) {
setTimeout ((Funktion (i) {
return function () {
console.log (i);
}
}) (i), 0);
}