WorkerGlobalScope: setTimeout() Methode
Baseline
Weitgehend verfügbar
*
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
Hinweis: Diese Funktion ist nur in Web Workers verfügbar.
Warnung:
Wenn der code-Parameter verwendet wird, führt diese Methode ihren Wert dynamisch als JavaScript aus.
Solche APIs sind bekannt als Injection-Sinks und sind potenziell ein Vektor für Cross-Site-Scripting (XSS)-Attacken.
Sie können dieses Risiko mindern, indem Sie immer TrustedScript-Objekte anstelle von Zeichenfolgen zuweisen und Trusted Types durchsetzen.
Siehe Sicherheitsüberlegungen in Window.setTimeout() für mehr Informationen.
Die setTimeout() Methode der WorkerGlobalScope-Schnittstelle setzt einen Timer, der eine Funktion oder angegebenen Code ausführt, sobald der Timer abläuft.
Syntax
setTimeout(code)
setTimeout(code, delay)
setTimeout(func)
setTimeout(func, delay)
setTimeout(func, delay, param1)
setTimeout(func, delay, param1, param2)
setTimeout(func, delay, param1, param2, /* …, */ paramN)
Parameter
func-
Eine
Function, die nach dem Ablaufen des Timers ausgeführt wird. code-
Ein
TrustedScriptoder eine Zeichenfolge von beliebigem Code, der alledelayMillisekunden kompiliert und ausgeführt wird. Dies kann anstelle einer Funktion verwendet werden, wird jedoch aus denselben Gründen, dieeval()zu einem Sicherheitsrisiko machen, stark abgeraten. delayOptional-
Die Zeit, die der Timer warten soll, bevor die angegebene Funktion oder der Code ausgeführt wird, in Millisekunden. Standardmäßig 0, wenn nicht angegeben.
Hinweis:
- Die Verzögerung hat einen maximalen Wert von 2147483647 ms — die Angabe größerer Werte kann zu einem Überlauf oder dem Wert 0 führen. Siehe maximaler Verzögerungswert für weitere Informationen.
- Die tatsächliche Verzögerung kann länger sein als eingestellt.
Zum Beispiel wird bei einem
delayvon 0 im nächsten Ereigniszyklus ausgeführt, statt "sofort". Siehe Gründe für längere Verzögerungen als angegeben für weitere Informationen. - Wenn der Wert keine Zahl ist, wird eine implizite Typkonvertierung stillschweigend durchgeführt, um ihn in eine Zahl zu konvertieren. Dies kann zu unerwarteten und überraschenden Ergebnissen führen — siehe Nicht-zahlen Verzögerungswerte werden stillschweigend in Zahlen umgewandelt für ein Beispiel.
param1, …,paramNOptional-
Zusätzliche Argumente, die an die durch
funcangegebene Funktion übergeben werden.
Rückgabewert
Ein positiver Integer (typischerweise im Bereich von 1 bis 2,147,483,647), der den durch den Aufruf erstellten Timer eindeutig identifiziert.
Diese Kennung, oft als "Timeout-ID" bezeichnet, kann an clearTimeout() übergeben werden, um den Timer abzubrechen.
Innerhalb derselben globalen Umgebung (z.B. ein bestimmtes Fenster oder Worker) wird die Timeout-ID garantiert nicht für irgendeinen neuen Timer wiederverwendet, solange der ursprüngliche Timer aktiv bleibt. Jedoch führen separate globale Umgebungen ihre eigenen unabhängigen Pools von Timer-IDs.
Ausnahmen
SyntaxError-
Der
codekann nicht als Skript geparst werden. TypeError-
Wird ausgelöst, wenn der
code-Parameter auf eine Zeichenfolge gesetzt ist, während Trusted Types durchgesetzt werden durch einen CSP und keine Standardrichtlinie definiert ist. Es wird auch ausgelöst, wenn der erste Parameter nicht einer der unterstützten Typen ist: eine Funktion, Zeichenfolge oderTrustedScript.
Beschreibung
Siehe Window.setTimeout() für detaillierte Beschreibungen.
Beispiele
Siehe Window.setTimeout() für Beispiele.
Spezifikationen
| Spezifikation |
|---|
| HTML> # dom-settimeout-dev> |