老师,有个疑惑

老师,有个疑惑

        async function ad() {
            const adDom = document.getElementById('ad');
            await wait(1000,'等1s失败了').catch(err=>{
                console.log(err);
            });
            adDom.classList.remove('none');
            await wait(2000,'等2s失败了').catch(err=>{
                console.log(err);
            });
            adDom.classList.add('none');
           
        }
        ad().then(()=>{
            console.log('success');
        })

https://img1.sycdn.imooc.com//climg/64253d15099856cd02190123.jpg老师,这个错误都被捕获了,为什么success还输出了,不是说只要任何一个await后面的promise对象失败,那么async函数返回的promise对象就会失败,捕获了错误,这个async函数返回的promise对象还成功了

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,这里能提出疑惑确实很不错,因为awita这里直接进行catch捕获(await wait(1000,'等1s失败了').catch)会出现代码继续执行的问题。老师这里并没有多说其他,但实则这种方式是行不通的(课程里只是介绍了这种方式,但是实际上是很不推荐的)后面老师会讲到try catch的方式进行捕获,try catch的方式才是更符合项目开发需求的。

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师