Linguaggio Javascript che differenza c’è tra Promise e Async-Await | Aulab

Linguaggio Javascript che differenza c’è tra Promise e Async-Await

17 aprile 2024

Enza Neri

AULAB

Vuoi avviare una nuova carriera o fare un upgrade?

Trova il corso Digital & Tech più adatto a te nel nostro catalogo!

Il linguaggio JavaScript è una risorsa fondamentale nel mondo della programmazione web, essenziale per lo sviluppo di applicazioni web dinamiche. Imparare JavaScript è cruciale comprendere alcune delle sue caratteristiche principali, tra cui le Promises e l’utilizzo di Async/Await. In questo articolo, esploreremo le differenze tra questi due costrutti, fornendo una visione approfondita della sintassi JavaScript e delle funzioni coinvolte nell’utilizzo di questa pratica.

Sintassi JavaScript e Programmazione JavaScript

La sintassi JavaScript è la chiave di accesso per qualsiasi aspirante sviluppatore web. Come tutti i linguaggi di programmazione, JS possiede la sua sintassi che è necessario conoscere per esercitarsi con il linguaggio. Comprendere la logica di base di JavaScript è essenziale per scrivere codice efficiente. Nel percorso di apprendimento del linguaggio JavaScript, si incontrano concetti come funzioni, oggetti e le strutture di controllo del flusso che formano il tessuto del linguaggio.

Promise in JS

Le Promise sono una caratteristica importante di JavaScript, introdotta per gestire operazioni asincrone in modo più pulito e leggibile. Una Promise rappresenta un valore che può essere disponibile ora, in futuro o mai. La sintassi di base di una Promise include i seguenti tre stati: pending (in attesa), fulfilled (se viene invocato con successo) e rejected (rifiutato a causa di un errore). Utilizzando le Promise, è possibile eseguire operazioni asincrone in modo più ordinato, evitando callback, eseguendo le cose nell’ordine naturale e migliorando la gestione degli errori. 

La Promise una volta restituita, oltre allo stato, fornisce un’altra proprietà chiamata result, inizialmente undefined, poi cambia in value, se viene invocato resolve(value) o in error, se viene invocato reject(error).

 

 1. const myPromise = new Promise((resolve, reject) => {
 2.   // Operazioni asincrone
 3.   if (operazioneRiuscita) {
 4.     resolve('Successo!');
 5.   } else {
 6.     reject('Errore!');
 7.   }
 8. });
 9.  
10. myPromise
11.   .then((result) => console.log(result))
12.   .catch((error) => console.error(error));

Sei indeciso sul percorso? 💭

Parliamone! Scrivici su Whatsapp e risponderemo a tutte le tue domande per capire quale dei nostri corsi è il più adatto alle tue esigenze.

Oppure chiamaci al 800 128 626

Async/Await in JavaScript

Async/Await possiede una sintassi introdotta in ECMAScript 2017, che semplifica ulteriormente la gestione delle Promises. Questa sintassi è particolarmente utile nel rendere il codice asincrono più leggibile e simile al codice sincrono. L’uso di Async/Await rende più facile per i programmatori gestire sequenze di operazioni asincrone senza creare una catena di Promises concatenate, scrivendo codice simile a quello.

Async/Await usa solo due keyword nella sintassi JavaScript: async and await

La prima, viene utilizzata per dichiarare che una particolare funzione è asincrona. Await attende l’esecuzione del blocco di codice della funzione asincrona finché una Promise non viene fullfiled o rejected.

 

async function esempioAsync() {
2.   try {
3.     const result = await myAsyncFunction();
4.     console.log(result);
5.   } catch (error) {
6.     console.error(error);
7.   }
8. }

Differenze Chiave tra Promise e Async/Await

  • Sintassi più pulita: Async/Await usa una sintassi più semplice, rendendo il codice asincrono più simile al codice sincrono rispetto all’utilizzo di Promises.
  • Gestione degli errori: Async/Await semplifica la gestione degli errori utilizzando il blocco try-catch, rendendo più chiaro il flusso di controllo quando si verificano errori.
  • Lettura del codice: Async/Await rende il codice più leggibile, in quanto evita la necessità di concatenare Promises usando then e catch.

 

Sia Promises che Async/Await sono potenti strumenti messi a disposizione di ogni sviluppatore JavaScript. Imparare JavaScript davvero, vuol dire approfondire la programmazione JavaScript e, in quest’ottica, comprendere le differenze tra Promises e Async/Await diventa cruciale per scrivere codice più leggibile, manutenibile ed efficiente. La scelta tra le due dipende spesso dalle esigenze specifiche del progetto e dalle preferenze personali, ma entrambe offrono soluzioni valide per gestire operazioni asincrone in modo efficace.

Vuoi saperne di più sul linguaggio Javascript? Consulta la nostra guida Javascript in italiano