我可以在异步函数中抛出错误吗?

时间:2017-06-15 08:25:21

标签: javascript promise async-await es6-promise

我在Node.js项目中使用async/await。在某些地方,我需要从async函数返回错误。如果我使用Promises,我可以通过这种方式实现它:

function promiseFunc() {
  return new Promise((res, rej) => {
    return rej(new Error('some error'))
  })
}

但我使用的是async函数,因此没有resrej方法。 所以,问题是:throw函数中的async错误可以吗?或者它被认为是一种好/坏的做法?

我想做的一个例子:

async function asyncFunc() {
  throw new Error('some another error')
}

我也可以这样重写:

async function anotherAsyncFunc() {
  return Promise.reject(new Error('we need more errors!'))
}

但第一个看起来更清楚,我不确定应该使用哪一个。

1 个答案:

答案 0 :(得分:7)

我愿意:

Promise.reject(new Error(error));

但我认为这取决于个人喜好?您可以随时返回vim app/view/filename.html.erb