web-dev-qa-db-fra.com

Comment utiliser Promise.prototype.finally () dans la syntaxe async / wait?

En fait, ma principale question était d'utiliser Promise.prototype.catch() dans la syntaxe async/awaitES8, Sans aucun doute Promise.prototype.then() existe essentiellement dans la syntaxe async/await.

J'ai cherché à utiliser Promise.prototype.catch() dans async/await Et j'ai trouvé ceci:

async () => {
  try {
    const result1 = await firstAsynchronousFunction();
    const result2 = await secondAsynchronousFunction(result1);
    console.log(result2);
  } catch(err) {
    throw new Error(`Something failed`);
  }
}

Et je connaissais absolument le chaînage Promise, comme:

new Promise((resolve) => {
  console.log(`Initial`);
  resolve();
})
.then(() => {
  console.log(`Task Number One`);
})
.catch(() => {
  console.log(`Task in Error`);
})
.finally(() => {
  console.log(`All Tasks is Done`);
})

Donc, ma question est comment puis-je utiliser finally dans la syntaxe async/await?

13
AmerllicA

cela devrait fonctionner:

async () => {
  try {
    const result1 = await firstAsynchronousFunction();
    const result2 = await secondAsynchronousFunction(result1);
    console.log(result2);
  } catch(err) {
    throw new Error(`Something failed`);
  } finally {
    console.log(`All Tasks is Done`);
  }
}
25
jcubic