Node.js: un esempio pratico del modello async/await

Node.js: un esempio pratico del modello async/await

In Node.js per comprendere il modello async/await occorre fornire un esempio pratico.

Questo modello va inserito nel contesto delle Promise. Una Promise, come vuole il suo nome, restituisce un risultato nel futuro. Il risultato può indicare il successo dell'azione svolta (resolve) o il suo fallimento con conseguente errore (reject).

Si supponga di avere una Promise che restituisce il suo risultato dopo un ritardo di 1 secondo:


const delay = () => {
    return new Promise( (resolve, reject) => {
        setTimeout (() => {
            resolve(1);
        }, 1000);
    });
};

Quindi il nostro codice dovrà aspettare il risultato per potersi coordinare. Qui entra in gioco il modello async/await (await vuol dire appunto "aspettare").

Per prima cosa creiamo una funzione asincrona con async:


const test = async () => {
    
};

A questo punto usiamo await per aspettare e memorizzare il valore restituito dalla Promise:


const test = async () => {
    let result = await delay();
    return result; // 1    
};

Quindi possiamo scrivere:


test().then(result => {
    console.log(result); // 1
});

Torna su