La parola chiave async
in JavaScript permette di definire funzioni asincrone, che facilitano la gestione delle operazioni asincrone come richieste HTTP, timer e altre operazioni che richiedono tempo. Le funzioni asincrone restituiscono implicitamente una promessa (promise).
La parola chiave async
viene utilizzata per dichiarare una funzione asincrona, che restituisce una promise e può contenere l'uso della parola chiave await
per aspettare la risoluzione di altre promesse.
Una funzione dichiarata con async
restituisce automaticamente una promessa. La sintassi è la seguente:
async function nomeFunzione() {
// codice
}
Un esempio di funzione asincrona:
async function fetchData() {
return "Dati ricevuti";
}
fetchData().then(data => console.log(data)); // Output: Dati ricevuti
La parola chiave await
può essere utilizzata solo all'interno di funzioni dichiarate con async
. Essa sospende l'esecuzione della funzione fino a quando la promessa non viene risolta:
async function fetchData() {
let response = await fetch('https://api.example.com/data');
let data = await response.json();
return data;
}
fetchData().then(data => console.log(data));
Nell'esempio sopra, l'uso di await
consente di scrivere codice asincrono che sembra sincrono, rendendo il codice più leggibile e gestibile.
La gestione degli errori in una funzione asincrona può essere eseguita utilizzando un blocco try...catch
:
async function fetchData() {
try {
let response = await fetch('https://api.example.com/data');
let data = await response.json();
return data;
} catch (error) {
console.error('Errore:', error);
}
}
fetchData().then(data => console.log(data));
In questo modo, gli errori derivanti da operazioni asincrone possono essere catturati e gestiti in modo efficace.
Un esempio completo che dimostra l'uso di async
e await
per effettuare una richiesta di rete e gestire la risposta:
async function fetchUserData() {
try {
let response = await fetch('https://api.example.com/users/1');
if (!response.ok) {
throw new Error('Errore di rete');
}
let userData = await response.json();
console.log(userData);
} catch (error) {
console.error('Errore:', error);
}
}
fetchUserData();
Questo esempio mostra come recuperare dati da un'API e gestire eventuali errori di rete o problemi di parsing JSON.