From 4b1a9203c547c019fc5398082ae19a3f3d4c3efe Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:41:15 -0500 Subject: initial commit --- .../reference/operators/async_function/index.html | 107 +++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 files/de/web/javascript/reference/operators/async_function/index.html (limited to 'files/de/web/javascript/reference/operators/async_function') diff --git a/files/de/web/javascript/reference/operators/async_function/index.html b/files/de/web/javascript/reference/operators/async_function/index.html new file mode 100644 index 0000000000..906f82dbcb --- /dev/null +++ b/files/de/web/javascript/reference/operators/async_function/index.html @@ -0,0 +1,107 @@ +--- +title: async function Ausdruck +slug: Web/JavaScript/Reference/Operators/async_function +tags: + - Experimental + - Function + - JavaScript + - Operator + - Primary Expression +translation_of: Web/JavaScript/Reference/Operators/async_function +--- +
{{jsSidebar("Operators")}}
+ +

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 {{jsxref('Statements/async_function', '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 {{Glossary("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

+ + + + + + + + + + + + + + + + +
SpezifikationStatusKommentar
{{SpecName('ESDraft', '#sec-async-function-definitions', 'async function')}}{{Spec2('ESDraft')}}Initiale Definition in ES2017.
+ +

Browserkompatibilität

+ +
+ + +

{{Compat("javascript.operators.async_function_expression")}}

+
+ +

Siehe auch

+ + -- cgit v1.2.3-54-g00ecf