起因
最近看到一篇關於js異步執行順序的解答,覺得有所收獲,遂記錄下來。
marcotask和microtask
js中異步隊列可以分為兩類,marcotask隊列和microtask隊列, marcotask隊列里面包含有1.script中的所有同步代碼,2.setTimeout,3. setInterval,4.setImmediate5. I/O操作, 6. UI渲染,而microtask隊列主要是有1.process,2.nextTick, 3.promise等等, 異步隊列執行的順序主要是 先從marcotask中取出一個任務(第一次就是取出所有同步的代碼),執行完成之后從microtask隊列取出所有的任務,執行完成之后, 再從marcotask隊列中取出一個, 循環往復,直到所有隊列的任務被完成.