mirror of
https://github.com/xfarrow/blink
synced 2025-06-27 09:03:02 +02:00
update
This commit is contained in:
64
tutorials/3_async-await.js
Normal file
64
tutorials/3_async-await.js
Normal file
@ -0,0 +1,64 @@
|
||||
// https://javascript.info/async-await
|
||||
|
||||
// A async function always returns a promise. Other values are wrapped in a resolved promise automatically.
|
||||
// Async e Await sono solo "sintassi zuccherina" per rendere l'utilizzo delle Promise più semplice
|
||||
|
||||
async function f1() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
f1().then(console.log); // 1
|
||||
|
||||
// The keyword await makes JavaScript wait until that promise settles and returns its result.
|
||||
// It can be used in async functions only
|
||||
// Let’s emphasize: await literally suspends the function execution until the promise settles,
|
||||
// and then resumes it with the promise result.
|
||||
async function f2() {
|
||||
|
||||
let promise = new Promise((resolve, reject) => {
|
||||
setTimeout(() => resolve("done!"), 1000)
|
||||
});
|
||||
|
||||
let result = await promise; // wait until the promise resolves (*)
|
||||
|
||||
console.log(result); // "done!"
|
||||
}
|
||||
|
||||
f2();
|
||||
|
||||
// Tutto il codice nella stessa funzione (o nello stesso blocco di codice)
|
||||
// dopo "await" è da considerarsi nel "then()" di una promessa. Pertanto dopo
|
||||
// await, il flusso di esecuzione va fuori a quel blocco di codice. Ad esempio considera
|
||||
// il seguente esempio:
|
||||
async function exampleAsyncFunction() {
|
||||
console.log('Before await');
|
||||
await new Promise(function(resolve, reject) {
|
||||
setTimeout(() => resolve("done"), 500);
|
||||
}); // Pauses execution here until the promise resolves.
|
||||
console.log('After await');
|
||||
}
|
||||
|
||||
console.log('Start');
|
||||
exampleAsyncFunction();
|
||||
console.log('End');
|
||||
|
||||
// Il risultato sarà:
|
||||
// Start, Before Await, End, After await
|
||||
// Viene prima "End" e poi "After Await", perché
|
||||
// dopo await, il flusso di esecuzione ritorna al
|
||||
// chiamante
|
||||
|
||||
// Domande
|
||||
//
|
||||
// Why await only works in async function in javascript?
|
||||
// https://stackoverflow.com/questions/49640647/why-await-only-works-in-async-function-in-javascript
|
||||
//
|
||||
// Why using async-await
|
||||
// https://stackoverflow.com/questions/42624647/why-use-async-when-i-have-to-use-await
|
||||
//
|
||||
// Si faccia presente che non è possibile creare da zero una funzione asincrona (come
|
||||
// setInterval o fetch)
|
||||
// https://stackoverflow.com/questions/61857274/how-to-create-custom-asynchronous-function-in-javascript
|
||||
//
|
||||
// Altra domanda interessante
|
||||
// https://stackoverflow.com/questions/42624647/why-use-async-when-i-have-to-use-await
|
Reference in New Issue
Block a user