js4 js巨集任務和微任務

2021-10-12 10:20:55 字數 1237 閱讀 7235

一、js巨集任務和微任務

// 什麼是eventloop,就是nodejs把要執行的事件任務放入佇列中,其中任務型別分為巨集任務和微任務,當每次主線程

// 執行完後就會到任務佇列中尋找任務進行執行,先執行巨集任務,再執行巨集任務中的微任務。

// 巨集任務和微任務特徵。

// 巨集任務: settimeout()  setinterval()   主體script 

// 微任務: promise.then  process.nexttick , 【早於下乙個巨集任務,開始於當前巨集任務的結束】

案例一、

// 1、案例一

(function() );

promise.resolve().then(() => ).then(()=>);

console.log('script_end');

})//())

// script_begin  script_end  promise1 promise2 settimeout1

// 解釋:先執行settimeout1,然後碰到settimeout放入任務佇列,promise1是微任務,promise2是微任務,

// 就先執行了script_end,然後執行2個微任務,再執行巨集任務。

案例二、

// 2、案例二

(function() );

new promise(function (resolve) ).then(function () )

});

// 1 ,2 ,4, 3, 5

}, 1000);

}());

// 解釋:3是巨集任務,4其實是本體執行(new promise內**不是非同步的),5是微任務。

案例三、

// 3、案例三 :(微任務直觀上面像巨集任務的子任務,primise微任務需要執行resolve才算加入當前執行巨集任務的任務佇列)

settimeout(() => ,duration);

});};

sleep(3000).then(()=>console.log("c"));

}, 1000);

// abc

// 原因,promise.then()**的微任務屬於哪個巨集任務是看resolve()在那裡執行。

JS微任務和巨集任務

1.巨集任務 包括整體 script,settimeout,setinterval i o ui 互動事件 setimmediate node.js 環境 2.微任務 promise mutaionobserver process.nexttick node.js 環境 promise.resolv...

js的巨集任務和微任務

script 主程式 settimeout setinterval setimmediate i o操作 ui渲染 requestanimationframe promise 原生 mutationobserver process.nexttick mutation object.observe 事...

js裡的微任務和巨集任務

當js解析執行時,會被引擎分為兩類任務,同步任務 synchronous 和非同步任務 asynchronous 對於同步任務來說,會被推到執行棧按順序去執行這些任務。對於非同步任務來說,當其可以被執行時,會被放到乙個任務佇列 task queue 裡等待js引擎去執行。當執行棧中的所有同步任務完成...