ser*_*off 8 javascript promise async-await es6-promise
我async/await在我的Node.js项目中使用.在某些地方我需要从async函数返回错误.如果我使用Promises,我可以这样做:
function promiseFunc() {
return new Promise((res, rej) => {
return rej(new Error('some error'))
})
}
Run Code Online (Sandbox Code Playgroud)
但我正在使用async函数,所以没有res和rej方法在那里.那么,问题是:我可以throw在async函数中出错吗?或者它被认为是好/坏的做法?
我想做的一个例子:
async function asyncFunc() {
throw new Error('some another error')
}
Run Code Online (Sandbox Code Playgroud)
我也可以这样重写它:
async function anotherAsyncFunc() {
return Promise.reject(new Error('we need more errors!'))
}
Run Code Online (Sandbox Code Playgroud)
但第一个看起来更清楚,我不确定应该使用哪一个.
我会做:
async function asyncFunc() {
try {
await somePromise();
} catch (error) {
throw new Error(error);
}
}
Run Code Online (Sandbox Code Playgroud)
但我认为这取决于我个人的偏好?你总是可以回来Promise.reject(new Error(error));.