2017-06-15 132 views
2

我在我的Node.js项目中使用async/await。而在某些地方我需要返回一个来自async函数的错误。如果我使用的承诺,我可能已经完成它是这样的:我可以在异步函数中抛出错误吗?

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!')) 
} 

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

+0

@suraj哎呀,没有看到这一个。它回答我的问题,是的。对不起。 – serge1peshcoff

回答

3

我会做:

async function asyncFunc() { 
    try { 
    await somePromise(); 
    } catch (error) { 
    throw new Error(error); 
    } 
} 

但我认为这涉及到个人喜好我猜?你总是可以返回Promise.reject(new Error(error));

+1

截至今天,还有另一个链接可能有所帮助:https://makandracards.com/makandra/43653-javascript-don-t-throw-exceptions-from-async-functions –

相关问题