Vereinfachte Syntax für asynchronen Code Erlaubt es, auf Ergebnisse zu „warten“, ohne den Hauptthread zu blockieren.

Asynchronous


function helloWorld() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve('Hello World!');
    }, 2000);
  });
}
 
const msg = async function () {
  //Async Function Expression
  const msg = await helloWorld();
  console.log('Message:', msg);
};
 
const msg1 = async () => {
  //Async Arrow Function
  const msg = await helloWorld();
  console.log('Message:', msg);
};
 
msg(); // Message: Hello World! <-- after 2 seconds
msg1(); // Message: Hello World! <-- after 2 seconds

Resolving Promises


let pro1 = Promise.resolve(5);
let pro2 = 44;
let pro3 = new Promise(function (resolve, reject) {
  setTimeout(resolve, 100, 'foo');
});
 
Promise.all([pro1, pro2, pro3]).then(function (values) {
  console.log(values);
});
// expected => Array [5, 44, "foo"]

Async Await Promises


function helloWorld() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve('Hello World!');
    }, 2000);
  });
}
 
async function msg() {
  const msg = await helloWorld();
  console.log('Message:', msg);
}
 
msg(); // Message: Hello World! <-- after 2 seconds

Error Handling


let json = '{ "age": 30 }'; // incomplete data
 
try {
  let user = JSON.parse(json); // <-- no errors
  console.log(user.name); // no name!
} catch (e) {
  console.error('Invalid JSON data!');
}

Aysnc await operator


function helloWorld() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve('Hello World!');
    }, 2000);
  });
}
 
async function msg() {
  const msg = await helloWorld();
  console.log('Message:', msg);
}
 
msg(); // Message: Hello World! <-- after 2 seconds