当前位置:   article > 正文

promise.then和settimeout、宏任务微任务问题

.then和settimeout

宏任务:[task1,task2,task3…]颗粒度大 实时性不强,要排队
微任务:缩小颗粒度[task1[m1…],task2[m1…],task3[m1…]],直接插队,实时性强

微任务:在上一个宏任务之后,下一个宏任务之前执行。
第一个 script 标签的代码是第一个宏任务

promise里面是同步,promise.then()是微任务,setTimeout是宏任务。
异步任务大致分为:微任务(micro task,如:promise.then、MutaionObserver等)和宏任务(macro task,如:setTimeout、setInterval、I/O等)。

// 1——>2——>3——>5——>4——>setTimeout
        console.log(111);
        setTimeout(()=>{
            console.log("setTimeout");
        })
        console.log(222);
        let p=new Promise((resolve,reject)=>{
            resolve('aa')
            console.log(333);
        })
        console.log(p);
        p.then(res=>{
            console.log(444,res);
        },err=>{
            console.log(err);
        })
        console.log(555);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/546887
推荐阅读
相关标签
  

闽ICP备14008679号