Heim >Web-Frontend >js-Tutorial >Warum führt „setTimeout' meine Funktion sofort aus?
Bei der Verwendung von setTimeout in JavaScript kann es zu einem Problem kommen, bei dem die Funktion sofort ausgeführt wird, unabhängig von der angegebenen Verzögerung . Diese Anomalie kann auf eine häufige Gefahr zurückgeführt werden.
Das Problem tritt auf, wenn Sie die Funktion innerhalb des setTimeout-Arguments aufrufen, etwa so:
setTimeout(testfunction(), 2000);
Diese Syntax ruft sofort testfunction() auf und setTimeout plant, dass der Rückgabewert dieses Funktionsaufrufs nach der angegebenen Verzögerung ausgeführt wird. Dadurch wird die Funktion sofort ausgeführt und der Timer wird überflüssig.
Um dieses Problem zu beheben, sollten Sie die Funktion selbst als Argument übergeben, ohne sie aufzurufen:
setTimeout(testFunction, 2000);
Beachten Sie das Fehlen von Klammern nach testFunction. Dieser Ansatz stellt sicher, dass die Funktionsausführung nach Ablauf der Verzögerung geplant wird, sodass sie sich wie beabsichtigt verhält.
Das obige ist der detaillierte Inhalt vonWarum führt „setTimeout' meine Funktion sofort aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!