JavaScript Interazione con le promesse


Esempio

6

Le eccezioni sono al codice sincrono quali reiezioni devono garantire un codice asincrono basato su promessa . Se un'eccezione viene lanciata in un gestore di promessa, il suo errore verrà automaticamente catturato e utilizzato per rifiutare la promessa.

Promise.resolve(5)
    .then(result => {
        throw new Error("I don't like five");
    })
    .then(result => {
        console.info("Promise resolved: " + result);
    })
    .catch(error => {
        console.error("Promise rejected: " + error);
    });

Promise rejected: Error: I don't like five
7

La proposta di funzioni asincrone, inaspettata per far parte di ECMAScript 2017, estende questo nella direzione opposta. Se attendi una promessa respinta, il suo errore viene sollevato come eccezione:

async function main() {
  try {
    await Promise.reject(new Error("Invalid something"));
  } catch (error) {
    console.log("Caught error: " + error);
  }
}
main();

Caught error: Invalid something