异常捕获
异步I/O的实现主要有两个阶段,①提交请求;②处理结果; 这两个阶段彼此不关联,而异常并不一定发生在请求提交(即调用函数)时,平常的try/catch并不能有效的捕捉到程序的异常。
示例:
try{ setTimeout(function(){ var data = a/1; //错误的计算 },1000); }catch (e){ console.log(e); }
因为计算并不会马上执行,所以即便是发生了错误,也无法捕获到相关信息,那么异步编程中应该如何处理异常的呢?请看示例2:
setTimeout(function(){ try{ var data = a/1; //错误的计算 }catch(e){ console.log(e); } },1000);