Wie Timeout Argumente übergeben?
Auch ein Pete
- javascript
0 Rolf B0 JürgenB0 Rolf B0 Felix Riesterer
Hallo,
Kurze Frage:
Wie kann ich einer über Timeout aufgerufenen Funktion Parameter übergeben?
let sagHallo = (arg) => {
console.log(`Hallo ${arg}`);
}
setTimeout(sagHallo.bind("Welt"), 1000);
erzeugt bei mir Hallo undefined
:(
Danke für eure Hilfe, Pete!
Hallo
sieh mal in unserem Wiki nach:
https://wiki.selfhtml.org/wiki/JavaScript/Window/setTimeout
Gruß
Jürgen
Hallo Pete,
mit bind erzeugst Du eine neue Funktion, die den an bind übergebenen Wert als this
zur Verfügung gestellt bekommt. Man kann an bind noch mehr Parameter übergeben, diese werden dann an die ersten Parameter der gebundenen Funktion übergeben. Du könntest also bind mit zwei Argumenten aufrufen:
setTimeout(sagHallo.bind(window, "Welt"), 1000)
Das würde das globale Objekt window
als this
und "Welt" für den arg Parameter bereitstellen.
Unser Wiki stellt eine ziemlich abstrakte Erläuterung von bind zur Verfügung - ich glaube, da muss ich mal 'ran. Aber falls es Dich interessiert: hier.
Aber bind ist hier zu umständlich. Einfacher ist die Nutzung der Zusatzparameter von setTimeout:
setTimeout(sagHallo, 1000, "Welt");
Rolf
Stimmt, in Hinblick auf die Dokumentation im Wiki war meine Frage eigentlich unnötig.
Werde in Zukunft wohl zuerst dort vorbeischauen, bevor ich hier klug poste.
Trotzdem danke für eure Hilfe!
Lieber Pete,
setTimeout(sagHallo.bind("Welt"), 1000);
setTimeout(
() => {
sagHallo("Welt");
},
1000
);
Liebe Grüße
Felix Riesterer