Das async function
Schlüsselwort kann benutzt werden, um async
Funktionen in Ausdrücken zu benutzen.
Man kann asynchrone Funktionen auch mit einem async Funktionsstatement definieren.
Syntax
async function [name]([param1[, param2[, ..., paramN]]]) { statements }
Seit ES2015 kann man auch Pfeilfunktionen benutzen.
Parameter
name
- Der Funktionsname. Kann weggelassen werden, wenn die Funktion anonym ist. Der Name ist nur lokal im Funktionsrumpf erreichbar.
paramN
- Der Name eines Arguments, welches der Funktion übergeben wird.
statements
- Die Statements, welche den Funktionsrumpf definieren.
Beschreibung
Ein async function
Ausdruck ist sehr ähnlich zu async Funktionsstatements
und haben fast die selbe Syntax. Der Hauptunterschied zwischen einem async
Funktionsausdruck und einem async
Funktionsstatement ist der Funktionsname, welcher bei async
Funktionsausdrücken weggelassen werden kann, um anonyme Funktionen zu erstellen. Ein async
Funktionsausdruck kann als IIFE (Immediately Invoked Function Expression) genutzt werden, welche Ausgeführt werden, nachdem sie definiert wurde. Mehr Informationen dazu gibt es im Kapitel über Funktionen.
Beispiele
Einfaches Beispiel
function resolveAfter2Seconds(x) { return new Promise(resolve => { setTimeout(() => { resolve(x); }, 2000); }); }; var add = async function(x) { // async function expression assigned to a variable var a = await resolveAfter2Seconds(20); var b = await resolveAfter2Seconds(30); return x + a + b; }; add(10).then(v => { console.log(v); // prints 60 after 4 seconds. }); (async function(x) { // async function expression used as an IIFE var p_a = resolveAfter2Seconds(20); var p_b = resolveAfter2Seconds(30); return x + await p_a + await p_b; })(10).then(v => { console.log(v); // prints 60 after 2 seconds. });
Spezifikationen
Spezifikation | Status | Kommentar |
---|---|---|
ECMAScript Latest Draft (ECMA-262) Die Definition von 'async function' in dieser Spezifikation. |
Entwurf | Initiale Definition in ES2017. |
Browserkompatibilität
Desktop | Mobile | Server | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
async function expression | Chrome Vollständige Unterstützung 55 | Edge Vollständige Unterstützung 15 | Firefox Vollständige Unterstützung 52 | IE Keine Unterstützung Nein | Opera Vollständige Unterstützung 42 | Safari Vollständige Unterstützung 10.1 | WebView Android Vollständige Unterstützung 55 | Chrome Android Vollständige Unterstützung 55 | Firefox Android Vollständige Unterstützung 52 | Opera Android Vollständige Unterstützung 42 | Safari iOS Vollständige Unterstützung 10.3 | Samsung Internet Android Vollständige Unterstützung 6.0 | nodejs
Vollständige Unterstützung
7.6.0
|
Legende
- Vollständige Unterstützung
- Vollständige Unterstützung
- Keine Unterstützung
- Keine Unterstützung
- Benutzer muss dieses Feature explizit aktivieren.
- Benutzer muss dieses Feature explizit aktivieren.
Siehe auch
async function
AsyncFunction
Objektawait