最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

宏任務(wù)與微任務(wù)

2022-10-20 09:44 作者:對白淺淺  | 我要投稿

// ?此文件為JS文件 ?需要在nodejs環(huán)境運行


const { rejects } = require("assert")

const { resolve } = require("path")


// js代碼是單線程的 ?在主線程上運行 ?如果代碼是異步的 那么一般會有一個回調(diào)函數(shù) ?不同的異步任務(wù)對應(yīng)不同的回調(diào) 比如計時器 Ajax

// 不同的回調(diào)會交給不同的模塊去處理


// 宏任務(wù)

// ? ? 分類:setInterval ? setTimeout ?requestAnimationFrame(用于告訴瀏覽器在下個動畫前調(diào)用回調(diào)函數(shù))

// ? ? 1.宏任務(wù)所處的隊列就是宏任務(wù)隊列

// ? ? 2.宏任務(wù)隊列可以有多個

// ? ? 3.第一個宏任務(wù)隊列中只有一個任務(wù):執(zhí)行主線程的js

// ? ? 4.第一個宏任務(wù)隊列中的所有任務(wù)全部執(zhí)行完成,查看是否有微任務(wù)隊列,如果有,先執(zhí)行微任務(wù)隊列中的所有任務(wù),如果沒有,就查看是否有其他宏任務(wù)隊列


// 微任務(wù)

// ? ? 分類:new Promise().then(回調(diào)) ?process.nextTick()

// ? ? 1.微任務(wù)所處的隊列就是微任務(wù)隊列

// ? ? 2.只有一個微任務(wù)隊列

// ? ? 3.在上一個宏任務(wù)隊列執(zhí)行完畢后,如果有微任務(wù)隊列,就會執(zhí)行微任務(wù)隊列中的所有任務(wù)


console.log('---------start-----------')


setTimeout(function(){

? ? console.log("setTimeout被執(zhí)行")

},0)


new Promise((resolve,reject)=>{

? ? for(var i=0;i<5;i++){

? ? ? ? console.log(i)

? ? }

? ? resolve();

}).then(()=>{

? ? console.log('promise實例成功回調(diào)執(zhí)行')

})


console.log('----------end-----------')


// 輸出結(jié)果為:

// ---------start-----------

// 0

// 1

// 2

// 3

// 4

// ----------end-----------

// promise實例成功回調(diào)執(zhí)行

// setTimeout被執(zhí)行


// 原理:


// 第一個宏任務(wù)隊列 ? ? ? ? ? ? ? ? ? 第二個宏任務(wù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?微任務(wù)


// 執(zhí)行主線程上代碼 ? ? ? ? ? ? ? ? ? setTimeout ? ? ? ? ? ? ? ? ? ? ? ? ? ?new Promise().then


// 注意:new Promise() 這個過程是同步的 ?.then()才是異步的


// ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 宏任務(wù) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?微任務(wù)

// 誰發(fā)起的 ? ? ? ? ? ? ? ? ?宿主(Node,瀏覽器) ? ? ? ? ? ? ? ? ? ? ? js引擎

// 具體事件 ? ? ? ? ? ? ? ? ?scrpit (可以理解為外層同步代碼) ? ? ? ? ? ?Promise.then()

// ? ? ? ? ? ? ? ? ? ? ? ? setTimeout/setInterval ? ? ? ? ? ? ? ? ? ?process.nextTick()

// ? ? ? ? ? ? ? ? ? ? ? ? UI rendering/ UI事件 ? ? ? ? ? ? ? ? ? ? ?MutaionObserver

// ? ? ? ? ? ? ? ? ? ? ? ? postMessage,MessageChannel ? ? ? ? ? ? ?

// ? ? ? ? ? ? ? ? ? ? ? ? setImmediate

// 誰先運行 ? ? ? ? ? ? ? ? ? ? ? ? 后運行(不考慮主線程) ? ? ? ? ? ? ? ? ?先運行

// 會觸發(fā)新一輪的Tick么 ? ? ? ? ? ? ?會 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?不會



宏任務(wù)與微任務(wù)的評論 (共 條)

分享到微博請遵守國家法律
宝坻区| 车险| 乌拉特中旗| 松潘县| 岑巩县| 德钦县| 高台县| 于田县| 洛隆县| 长宁县| 邵东县| 辽宁省| 大埔区| 酒泉市| 南丹县| 诸暨市| 于田县| 阿拉善右旗| 微山县| 额尔古纳市| 游戏| 河东区| 延长县| 株洲县| 西乌珠穆沁旗| 治县。| 读书| 阳新县| 元氏县| 杨浦区| 甘洛县| 湾仔区| 遂川县| 高陵县| 灌云县| 宁明县| 海原县| 安庆市| 宜阳县| 罗江县| 西和县|