async / await catch拒绝了Promises

时间:2016-01-29 17:51:03

标签: javascript node.js babeljs

我刚开始使用async/await并遇到问题。

我可以按预期做到:

async function x() {
  let y = await Promise.resolve(42);
  return y;
}

但是当我拒绝Promise

async function bad() {
  try {
   await Promise.reject('bad');
  } catch(bad) {
    bad; //AssertionError: TypeError: (0 , _errorHandler2.default) is not a function
  }
}

如何使用rejected Promises抓住async/await

1 个答案:

答案 0 :(得分:19)

单独bad;应该做什么?错误按预期捕获,您只是不做任何事情:

async function bad() {
  try {
    await Promise.reject('bad');
  } catch(err) {
    console.log(err);
  }
}

bad();

按预期输出badCode here