• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] setTimeout mit Parameterübergabe?

znieh99

New member
Hallo Forum,
ich möchte eine Funktion verzögert aufrufen und dafür 'setTimeout' verwenden. Bei der Parameterübergabe wird aber der timeout nicht berücksichtigt.

Code:
setTimeout(message, 2000);   // funktioniert mit Verzögerung

setTimeout(message(txt), 2000;  // funktioniert ohne Verzögerung
 
Code:
setTimeout(message, 2000);   // funktioniert mit Verzögerung

setTimeout(message(txt), 2000;  // funktioniert ohne Verzögerung

im ersten fall übergibst du setTimeout eine funktionsreferenz die nach 2 sek. ausgeführt wird.
im 2. fall führst du eine funktion aus und übergibst setTimeout dessen returnwert. ist der returnwert eine funktionsreferenz, wird die refferenzierte funktion nach 2 sek ausgeführt.
du willst deiner funktion aber vermutlich nur einen parameter mitgeben
setTimeout(function() { message(txt); }, 2000);

- - - Aktualisiert - - -

und wenn du txt im nachgang noch änderst und diese änderung nicht in message ankommen soll
Code:
setTimeout((function(txt) { return function() { message(txt); }; })(txt), 2000);
 
Oder einfach direkt die Möglichkeiten von setTimeout verwenden:
Code:
window.setTimeout(message, 2000, txt);
 
Zurück
Oben