宏队列与微队列


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>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM