如何在javascript中捕获闭包/ifffy函数中的错误而不承诺

如何在javascript中捕获闭包/ifffy函数中的错误而不承诺,javascript,closures,Javascript,Closures,如何在outter try catch中捕获closure/ifffy函数中的错误,而不使用javascript中的promise //闭包 功能abc(a、b){ 试一试{ 设置超时(()=>{ 抛出新错误(“错误”) },0) }捕获(e){ 控制台日志(e) } } abc(10,0)在您的情况下,错误是从setTimeout抛出的,该setTimeout没有包含try-and-catch,并在您的函数完成后执行,这应该可以工作: (功能abc(a、b){ 常量catchiftneed

如何在outter try catch中捕获closure/ifffy函数中的错误,而不使用javascript中的promise

//闭包

功能abc(a、b){
试一试{
设置超时(()=>{
抛出新错误(“错误”)
},0)
}捕获(e){
控制台日志(e)
}
}

abc(10,0)
在您的情况下,错误是从setTimeout抛出的,该setTimeout没有包含try-and-catch,并在您的函数完成后执行,这应该可以工作:

(功能abc(a、b){
常量catchiftneeded=(f)=>()=>{
试一试{
f()
}捕获(e){
控制台日志(e)
}
}
setTimeout(CatchifRequired(()=>{
抛出新错误(“错误”)
}),0)

})(10,0)
当内部的
抛出发生时,您的函数将已经结束,因此我认为“无承诺”方法不是一个很有前途的方法(没有双关语,但我会接受)