问答详情
源自:-

3.3错误处理 视频里讲错了

3.3错误处理一节,课程里讲的不对。  计时器回到函数属于异步执行的代码,里面抛出的异常并不能被catch 捕获到。

new Promise((resolve,reject)=>{

    setTimeout(()=>{
        //此处抛出的异常是因为没有被捕获所以会在控制台被打印出来。
        throw new Error("bye");
    },2000);
    
    // throw new Error("bye2") //同步的方式执行会被promise处理成reject立即调用,可以被后面的catch捕获到
})
    .then(value=>{
        console.log(value+" world");
})
    .catch(error=>{//
        //按照课程里的代码,setTimeout里面抛出的异常在这里是捕获不到的。
})


提问者:董曼巴 2019-08-26 11:18

个回答