宏隊列與微隊列


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