| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/async_function | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit April 2017 browserbergreifend verfgbar.
Die Schlsselwrter async function knnen verwendet werden, um eine asynchrone Funktion innerhalb eines Ausdrucks zu definieren.
Sie knnen auch asynchrone Funktionen mit der async function Deklaration oder der Pfeil-Syntax definieren.
async function (param0) {
statements
}
async function (param0, param1) {
statements
}
async function (param0, param1, /* , */ paramN) {
statements
}
async function name(param0) {
statements
}
async function name(param0, param1) {
statements
}
async function name(param0, param1, /* , */ paramN) {
statements
}
Hinweis:
Eine Ausdrucksanweisung kann nicht mit den Schlsselwrtern async function beginnen, um Mehrdeutigkeiten mit einer async function Deklaration zu vermeiden. Die Schlsselwrter async function beginnen nur dann einen Ausdruck, wenn sie in einem Kontext erscheinen, der keine Anweisungen akzeptiert.
name OptionalDer Funktionsname. Kann weggelassen werden, in diesem Fall ist die Funktion anonym. Der Name ist nur innerhalb des Funktionskrpers lokal.
paramN OptionalDer Name eines formalen Parameters fr die Funktion. Fr die Syntax der Parameter siehe das Funktionen Referenz.
statements OptionalDie Anweisungen, die den Krper der Funktion bilden.
Ein async function Ausdruck ist dem async function Deklaration sehr hnlich und hat fast dieselbe Syntax. Der Hauptunterschied zwischen einem async function Ausdruck und einer async function Deklaration ist der Funktionsname, der in async function Ausdrcken weggelassen werden kann, um anonyme Funktionen zu erstellen. Ein async function Ausdruck kann als IIFE (Immediately Invoked Function Expression) verwendet werden, die ausgefhrt wird, sobald sie definiert ist, und es Ihnen ermglicht, Top-Level Await nachzuahmen. Siehe auch das Kapitel ber Funktionen fr weitere Informationen.
function resolveAfter2Seconds(x) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(x);
}, 2000);
});
}
// async function expression assigned to a variable
const add = async function (x) {
const a = await resolveAfter2Seconds(20);
const b = await resolveAfter2Seconds(30);
return x + a + b;
};
add(10).then((v) => {
console.log(v); // prints 60 after 4 seconds.
});
// async function expression used as an IIFE
(async function (x) {
const p1 = resolveAfter2Seconds(20);
const p2 = resolveAfter2Seconds(30);
return x + (await p1) + (await p2);
})(10).then((v) => {
console.log(v); // prints 60 after 2 seconds.
});
Ein async IIFE ermglicht Ihnen die Verwendung von await und for...await in Kontexten, in denen Top-Level Await nicht verfgbar ist. Hier verwenden wir eine Pfeilfunktion, um das IIFE zu definieren, aber auch async function Ausdrcke knnen verwendet werden.
const getFileStream = async (url) => {
// implementation
};
(async () => {
const stream = await getFileStream("https://domain.name/path/file.ext");
for await (const chunk of stream) {
console.log({ chunk });
}
})();
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-async-function-definitions |
async functionAsyncFunctionawaitDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |