【发布时间】:2019-01-17 06:50:56
【问题描述】:
我正在尝试让 Mocha 显示错误,并在我的 Node 代码上声明一个被拒绝的承诺 - ...而不是为导致我的异步函数被拒绝的异常显示 UnhandledPromiseRejectionWarning。
我已经搜索并尝试了许多关于在 Mocha 中处理此警告和承诺拒绝的建议,但没有一个对我有用。这似乎是一个反复出现的话题,对很多人来说都是一个非常困惑的话题。
我正在尝试这样做:
使用 lambda 函数
不使用
done使用简单的断言(我不喜欢
expect和should)通过 try/catch 处理错误(我不喜欢链式
.then和.catch;如果使用.then(res,err)则更不喜欢它)
类似:
it('should give an error',
async ()=> {
try{
await generateException()
assert(true)
} catch(err) {
console.err(err)
assert ??? // how to 'assert' a promise rejection?
}
}
)
如果不可避免地要使用我不太喜欢的任何东西,那很好。但是我想要的更接近的解决方案是什么?
另外,我不明白为什么被拒绝的承诺不会像我预期的那样被 try/catch 捕获,因为这正是使用 await 的目的(使异步代码像它们一样工作)同步)。
【问题讨论】:
标签: javascript promise async-await mocha.js