美文网首页
Event Loop

Event Loop

作者: 阿羡吖 | 来源:发表于2020-08-09 15:55 被阅读0次

宏任务:setTImeout、setInterval
微任务:Promise、process.nextTick(callback)
同一个队列中,先执行宏任务,再执行其他任务,最后执行微任务
在当前队列中出现的异步,如果是微任务就会放在当前队列的最低端
如果当前队列中出现的异步宏任务,就会放在下一队列的最顶端
也就是说 同一个队列中触发异步,微任务先执行,宏任务后执行

<script>
      setTimeout(function () {
        new Promise(function (res, rej) {
          console.log("1");
          res();
        }).then(
          function () {
            console.log("2");
          },
          function () {}
        );
        console.log("3");
      }, 0);
      console.log("4");
    </script>

依次输出:4 1 3 2

console.log('script start');

setTimeout(function () {
    console.log('setTimeout---0');
}, 0);

setTimeout(function () {
    console.log('setTimeout---200');
    setTimeout(function () {
        console.log('inner-setTimeout---0');
    });
    Promise.resolve().then(function () {
        console.log('promise5');
    });
}, 200);

Promise.resolve().then(function () {
    console.log('promise1');
}).then(function () {
    console.log('promise2');
});
Promise.resolve().then(function () {
    console.log('promise3');
});
console.log('script end');
script start
script end
promise1
promise3
promise2
setTimeout---0
setTimeout---200
promise5
inner-setTimeout---0

具体参考:https://juejin.im/post/6844903802185711629

相关文章

网友评论

      本文标题:Event Loop

      本文链接:https://www.haomeiwen.com/subject/nsildktx.html