Sobes.tech
Junior

Quali metodi di lavoro con il codice asincrono conosci?

sobes.tech AI

Risposta dell'AI

Callbacks, Promesse, async/await.

Callbacks: Funzioni passate come argomento ad altre funzioni, chiamate dopo il completamento di un'operazione asincrona.

Promesse: Oggetti che offrono un modo più comodo di gestire l'asincronia rispetto ai callback. Hanno stati pending, fulfilled e rejected.

// Esempio di Promise
function asyncOperation() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Operazione completata con successo!');
    }, 1000);
  });
}

asyncOperation()
  .then(result => console.log(result))
  .catch(error => console.error(error));

async/await: Zucchero sintattico sulle Promesse, che rende il codice asincrono più simile a quello sincrono e ne migliora la leggibilità.

// Esempio di async/await
async function performAsyncOperation() {
  try {
    const result = await asyncOperation();
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}

performAsyncOperation();

Confronto tra metodi:

Metodo Leggibilità / Manutenibilità Gestione degli errori Controllo del flusso
Callbacks Meno leggibile (Callback Hell) Difficile Difficile
Promesse Migliorata Comodo (.catch) Comodo (.then, .catch)
async/await Migliore Comodo (try...catch) Comodo (await)

Il metodo più preferito nelle applicazioni Node.js moderne è l'uso di async/await per la sua leggibilità e comodità. Le Promesse rimangono uno strumento importante, specialmente a livello di basso livello. I callbacks sono usati in codice obsoleto o per operazioni di basso livello nel core di Node.js.