![](/img/trans.png)
[英]Keep getting Unhandled promise rejection even with try catch block
[英]Unhandled Promise rejection on try/catch block
假设我有一个异步功能
static async update (id, data){
try {
//async function below
_DB.putsomedata()
return true
} catch(e){
//log errors
}
}
并且尽管我不需要_DB.putsomedata()
的结果, _DB.putsomedata()
我仍然需要知道update()
函数是否已完成而没有错误。
我进行了一些测试,并注意到结果将始终返回true(这是预期的),但是如果失败,则错误永远不会捕获在catch块中,并且会引发未处理的异常。
有人可以解释这种行为吗?
假设_DB.putsomedata
是一个async
函数,则需要await
它。 否则,它的Promise只会在后台继续,最终会失败并产生错误。 同时,您的代码将继续前进,并且try..catch
块将长期退出。
putsomedata函数是异步的,因此在将putsomedata标记为可计算之后(而不是针对同步函数启动),计算中的返回语句。
putsomedata返回的可能是一个承诺,它将在cpu可用时解决。
您可以使用.promise().then().catch()函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.