Heim > Web-Frontend > js-Tutorial > Warum wird mein „setInterval'-Rückruf nur einmal ausgeführt?

Warum wird mein „setInterval'-Rückruf nur einmal ausgeführt?

Mary-Kate Olsen
Freigeben: 2024-12-11 03:36:11
Original
944 Leute haben es durchsucht

Why Does My `setInterval` Callback Only Run Once?

Einzelausführung des setInterval-Rückrufs:

Betrachten Sie den folgenden Code, der darauf abzielt, einen Zähler zu erstellen:

function timer() {
  console.log("timer!")
}

window.setInterval(timer(), 1000)
Nach dem Login kopieren

Allerdings , führt dieser Code die Timer-Funktion nur einmal aus. Sehen wir uns genauer an, warum dieses Problem auftritt und wie man es beheben kann.

Das Problem entsteht, weil der erste Parameter von setInterval eine Funktionsreferenz und kein Funktionsaufruf sein sollte. Im obigen Code wird timer() sofort aufgerufen und gibt undefiniert zurück. Infolgedessen ist setInterval so eingestellt, dass es undefiniert in einem Intervall von 1000 Millisekunden aufruft, was zu einer einzelnen Ausführung anstelle einer Endlosschleife führt.

Um dies zu beheben, müssen wir eine Funktionsreferenz übergeben, anstatt die Funktion aufzurufen . Hier ist der korrigierte Code:

function timer() {
  console.log("timer!");
}

window.setInterval(timer, 1000);
Nach dem Login kopieren

In dieser korrigierten Version wird der Timer als Referenz übergeben, sodass setInterval ihn im angegebenen Intervall aufrufen kann.

Alternativ können wir eine anonyme Funktion verwenden als Rückruf:

window.setInterval( function() {
  console.log("timer!");
}, 1000)
Nach dem Login kopieren

Dieser Ansatz ist kürzer, wird aber möglicherweise weniger lesbar, wenn die Funktion größer wird komplex.

Durch die Implementierung dieser Änderungen wird die Timer-Funktion nun wiederholt im gewünschten Intervall ausgeführt und sorgt so für einen kontinuierlich laufenden Zähler.

Das obige ist der detaillierte Inhalt vonWarum wird mein „setInterval'-Rückruf nur einmal ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage