宏任务、微任务及其执行顺序

		setTimeout(()=>{console.log('我是宏任务')},0);
        let promise = new Promise(resolve => {resolve();console.log('新建promise')});
        promise.then(value =>{console.log('我是微任务')});
        console.log('主流程');

定时器对应的任务为宏任务,promise对象的then方法创建的任务为微任务,执行顺序首先执行promise对象初始化中的方法,它和主流程的方法一样先执行,然后执行微任务,最后执行宏任务,即使定时器的时间为0也是如此,以上代码的执行结果为
新建promise
主流程
我是微任务
我是宏任务
代码中的resolve();把promise对象的状态改为成功,于是当主流程执行完毕后会执行微任务中的成功方法

发布了187 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/gunsmoke/article/details/104460291
今日推荐