1

我只是在节点中玩异步/等待,似乎如果你正在等待一个承诺并且它被拒绝它会抛出。我想知道是否有比回到我不知道的 try/catch 块更干净的模式?

async function foo() {
  const val = await Promise.reject();
}
4

1 回答 1

1

try/catch() 更简洁的模式,对齐同步和异步错误处理:

(目前适用于 Chrome 和 Firefox 开发者版)

function a(heads) {
  if (heads) throw new Error("Synchronous error");
}

async function b() {
  await Promise.resolve();
  throw new Error("Asynchronous error");
}

async function main(heads) {
  try {
    a(heads);
    await b();
  } catch (e) {
    console.log(e.message);
  }
}
main(false); // Synchronous error
main(true);  // Asynchronous error

于 2017-01-03T15:53:46.063 回答