try-catch 能否监听多线程中的错误?

438 阅读1分钟

1.无法监听setTimeout函数中的错误

2.无法监听promise函数中的错误

3.无法监听Ajax函数中的错误

总结:

对于以上几种异步操作,我们看的出来try-catch并未帮我们监听的到里面的错误。 原因是:javaScript引擎对异步方法进行try/catch操作只能捕获当次事件循环内的异常,对 call back执行时抛出的异常将无能为力。 但是对于异步操作,只要是代码逻辑没有问题,我们在适当的问题出口把问题暴 露出去就可以了,比如 Promise 的 then,Ajax 的状态判断等等。