Как использовать Promise.prototype.finally () в синтаксисе async / await? - PullRequest
0 голосов
/ 16 мая 2018

На самом деле моим главным вопросом было использование Promise.prototype.catch() в async/await ES8 синтаксисе. Несомненно, Promise.prototype.then() существует в сущности синтаксиса async/await.

Я искал об использовании Promise.prototype.catch() в async/await и нашел это:

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

И я точно знал о Promise цепочках, как:

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`);
})

Итак, мой вопрос как я могу использовать finally в async/await синтаксисе ?

1 Ответ

0 голосов
/ 16 мая 2018

это должно работать:

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`);
  }
}
...