Nell’uso di Promises in JavaScript, gestire gli errori è importante quanto gestire il successo dell’esecuzione di una funzione asincrona. Esistono vari modi per gestire gli errori quando si usano Promises.
1. Usando il metodo .catch(): Questo metodo può essere annesso alla catena di Promises per gestire qualsiasi errore che potrebbe verificarsi in qualsiasi dei Promises precedenti. Se uno qualsiasi dei Promises viene rifiutato, l’esecuzione salta al metodo .catch() più vicino.
\`\`\`javascript doSomethingAsync() .then(result => doSomethingElseAsync(result)) .catch(error => console.error(“An error occurred: “ + error)); \`\`\`1. Gestione degli errori nel metodo .then(): un secondo parametro può essere passato al metodo .then(), che fungerà come gestore di errori per il Promise precedente.
\`\`\`javascript doSomethingAsync() .then( result => doSomethingElseAsync(result), error => console.error(“An error occurred: “ + error) ); \`\`\`Tieni presente che la differenza principale qui è che il metodo .catch() catturerà qualsiasi errore che si verifichi in qualsiasi parte della catena di Promises, mentre un gestore di errori passato come secondo argomento a .then() gestirà solo i rifiuti provenienti dal Promise immediatamente precedente.
Inoltre, va notato che se un errore si verifica all’interno di un gestore .then() o .catch() e non viene gestito lì, sarà necessario un ulteriore .catch() successivo per gestire quell’errore.
1. Usando il blocco try/catch con async/await: Se stai usando la sintassi async/await, gli errori possono essere gestiti utilizzando il blocco try/catch standard.
\`\`\`javascript async function doSomethingAsync() { try { const result = await someAsyncOperation(); // Do something with result } catch (error) { console.error(“An error occurred: “ + error); } } \`\`\`