Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

AsyncFunction() Konstruktor

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2017.

Warnung: Die an diesen Konstruktor übergebenen Argumente werden dynamisch als JavaScript geparst und ausgeführt. Solche APIs sind bekannt als Injection-Senken und können potenziell ein Angriffsvektor für Cross-Site-Scripting (XSS) Angriffe sein.

Sie können dieses Risiko mindern, indem Sie immer TrustedScript Objekte anstelle von Zeichenfolgen übergeben und vertrauenswürdige Typen erzwingen.

Weitere Informationen finden Sie unter Sicherheitsüberlegungen in der Referenz zum Function() Konstruktor.

Der AsyncFunction() Konstruktor erstellt AsyncFunction Objekte.

Beachten Sie, dass AsyncFunction kein globales Objekt ist. Es kann mit dem folgenden Code erhalten werden:

js
const AsyncFunction = async function () {}.constructor;

Der AsyncFunction() Konstruktor ist nicht dazu gedacht, direkt verwendet zu werden, und alle in der Beschreibung von Function() erwähnten Warnhinweise gelten für AsyncFunction().

Syntax

js
new AsyncFunction(functionBody)
new AsyncFunction(arg1, functionBody)
new AsyncFunction(arg1, arg2, functionBody)
new AsyncFunction(arg1, arg2, /* …, */ argN, functionBody)

AsyncFunction(functionBody)
AsyncFunction(arg1, functionBody)
AsyncFunction(arg1, arg2, functionBody)
AsyncFunction(arg1, arg2, /* …, */ argN, functionBody)

Hinweis: AsyncFunction() kann mit oder ohne new aufgerufen werden. Beide Aufrufe erzeugen eine neue AsyncFunction Instanz.

Parameter

Siehe Function().

Beispiele

Beachten Sie, dass in diesen Beispielen zur Kürze auf die Verwendung vertrauenswürdiger Typen verzichtet wird. Für Code, der den empfohlenen Ansatz zeigt, siehe Verwendung von TrustedScript in eval().

Erstellen einer asynchronen Funktion mit einem AsyncFunction() Konstruktor

js
function resolveAfter2Seconds(x) {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(x);
    }, 2000);
  });
}

const AsyncFunction = async function () {}.constructor;

const fn = new AsyncFunction(
  "a",
  "b",
  "return await resolveAfter2Seconds(a) + await resolveAfter2Seconds(b);",
);

fn(10, 20).then((v) => {
  console.log(v); // prints 30 after 4 seconds
});

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-async-function-constructor

Browser-Kompatibilität

Siehe auch