异步编程 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

异常捕获


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