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 secondsResolving 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 secondsError 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