异常捕获
异步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);