Open py-tofee opened 3 years ago
// 以下代码中,catch不会捕获到promise中的错误,运行到console.log(a)时,会直接报错 try { let p = new Promise((resolve) => { console.log(a) // ReferenceError: a is not defined resolve() }) p.then(() => { console.log(1) }) } catch (error) { console.log(3) console.log(error) }
try..catch 只会捕获同步函数的异常,如果 try 里面包含了异步函数,且异步函数抛出异常,catch是不能捕获到这个异常的;promise的异常只能由reject抛出,由promise.catch捕获; 原因: Event Loop 事件循环机制 宏任务和微任务
promise 中抛出的异常能否被 try..catch 捕获,为什么
try..catch 只会捕获同步函数的异常,如果 try 里面包含了异步函数,且异步函数抛出异常,catch是不能捕获到这个异常的;promise的异常只能由reject抛出,由promise.catch捕获; 原因: Event Loop 事件循环机制 宏任务和微任务