Javascript Funktion jede Sekunde automatisch ausführen lassen?

3 Antworten

Von BeamerBen und einem weiteren Experten bestätigt
setInterval( deineFunktion, 1000 );

function deineFunktion(...) {
  ...
}

Geht natürlich auch mit Arrow-Function:

setInterval( () => {
  ...
}, 1000 ;

Oder ganz altmodisch:

setInterval( function() {
  ...
}, 1000 );
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
Ganlin  22.07.2021, 00:57

mist, ich benutz die "altmodische" variante, lol

1

Es gibt zwei Wege, setTimeout und setIntervall.

setIntervall macht genau das was du willst, es führt eine Funktion alle X Sekunden aus.

setTimeout führt eine Funktion verzögert aus. Manchmal ist es besser setTimeout zu nutzen und das dann wieder aufzurufen nachdem die Funktion durchgelaufen ist. Das stellt sicher, dass die Funktion nicht zwei mal gleichzeitig laufen kann wenn die Funktion z.B. länger braucht weil man teilweise irgendwelche Netzwerk Requests macht.

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout

https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops
Undercover235 
Fragesteller
 23.07.2021, 11:15

Danke für deine Antwort habe aber nach so etwas wie setIntervall gefragt. Ich wollte eine if Abfrage dort einbinden die abfragt, ob eine bestimmte Variable true ist. Wenn dies so ist dann soll eine andere Variable erhöht werden. (Jede Sekunde halt)

0
BeamerBen  23.07.2021, 11:38
@Undercover235

Ja, aber ohne zu wissen was für eine Funktion es ist und wie der Anwendungsfall ist kann man nicht sagen ob man lieber setIntervall oder setTimeout nutzen sollte, deswegen bin ich auf den Unterschied eingegangen. Das was du beschreibst würde ich auch mit setIntervall machen.

1
Undercover235 
Fragesteller
 23.07.2021, 11:39
@BeamerBen

Dann habe ich vielleicht die Frage etwas schwammig gestellt :)

0
while(true) {
  setInterval(foo, 1000);
} 
Ganlin  22.07.2021, 00:56

na das is doch wohl müll

0
Ganlin  22.07.2021, 01:00
@verreisterNutzer

Warte, ich mach ne neue frage hier, mit deinem code und es kommen sofort 100 antworten mit dem titel: "mach doch sowas nicht"

0
TechPech1984  22.07.2021, 01:25
@verreisterNutzer

also die while schleife wird unendlich oft mal ausgeführt , und diverse settimeouts gestartet und die machen jeweils nach einer sekunde was ?

da hält ja nix an bei settimeout ...

ergo das werden schon in der ersten sekunde soviele timeouts das dein javascript sich aufhängt .

du spammst dein stack und damit wird dein javascript ins reich der "overflows" rennen .

1