首页 > 其他 > 详细

宏队列与微队列

时间:2019-12-31 10:01:51      阅读:100      评论:0      收藏:0      [点我收藏+]

1、JS 中用来存储待执行回调函数的队列包含2 个不同特定的列队

2、宏列队: 用来保存待执行的宏任务(回调), 比如: 定时器回调/DOM 事件回调/ajax 回调

3、微列队: 用来保存待执行的微任务( 回调), 比如: promise 的回调/MutationObserver 的回调

4、JS 执行时会区别这2 个队列

  4.1 JS 引擎首先必须先执行所有的初始化同步任务代码

  4.2 每次准备取出第一个宏任务执行前, 都要将所有的微任务一个一个取出来执行

 技术分享图片

demo样例

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <!-- <script src="customedPromise/promise.js"></script> -->
        <script type="text/javascript">
            setTimeout(() => {
                console.log(timeout callback1())
                Promise.resolve(3).then(
                    value => {
                        console.log(Promise onResolved3(), value);
                    }
                )
            }, 0)
            setTimeout(() => {
                console.log(timeout callback2())
            }, 0)
            
            Promise.resolve(1).then(
                value => {
                    console.log(Promise onResolved1(), value);
                }
            )
            Promise.resolve(2).then(
                value => {
                    console.log(Promise onResolved2(), value);
                }
            )
        </script>
    </head>
    <body>
    </body>
</html>

宏队列与微队列

原文:https://www.cnblogs.com/jerryleeplus/p/12122455.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!