是否可以运行JavaScript(NodeJS)命令/函数,如果出现错误,让程序继续运行?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以运行JavaScript(NodeJS)命令/函数,如果出现错误,让程序继续运行?相关的知识,希望对你有一定的参考价值。
我想知道是否有一种方法可以在javascript中运行一个函数,如果运行该函数时出错,让程序忽略它?
player.play('./sounds/throughQueue.mp3', function(err){
if (err) throw err
})
非常喜欢这样没有“扔错误”。
该计划应该继续下去。
期待您的回答。
答案
正如您在评论中提到的,您想知道如何处理异步函数错误;你可以这样做:
function myAsyncFunction(){
return new Promise((resolve, reject) => {
// do some async anction that returns error
foo.asyncCall((err, item) => err && reject(err))
}
}
myAsyncFunction().catch(e => console.error(e))
如果您观察上面的代码,则异步错误以两种样式处理:
- 回调函数通常有第一个arg返回错误,你可以做
if (err)
并在那里添加你想要的任何逻辑。或者只是忽略它。 - 在
Promise
中你可以使用reject
,它是构造函数中的第二个参数。当你拒绝错误时,你可以在.catch
上使用Promise
方法并使用你想要的任何自定义逻辑,新的promise调用或函数回调。
注意我在回调函数中使用了console.error
,你可以在那里什么也不做,它将被忽略(你的程序将继续)
另一答案
是的,您可以忽略回调/保证错误或吞下try / catch catch错误,但它只能使执行继续,而不是使行为或结果正确。
- 如果在回调函数中,您可以忽略具有空错误处理的错误,并且执行也不会中断,但是如果调用中存在错误,则行为仍然依赖于。
- 如果在承诺中,您也可以忽略捕获的错误。
- 如果采用异步/等待方式,则必须尝试/捕获调用并吞下捕获的错误。
总之,我建议你处理可能的错误。毕竟,质量软件是我们想要的。什么可能会发生最终会发生。
以上是关于是否可以运行JavaScript(NodeJS)命令/函数,如果出现错误,让程序继续运行?的主要内容,如果未能解决你的问题,请参考以下文章