91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么判斷是瀏覽器還是node環境

發布時間:2021-09-01 14:06:23 來源:億速云 閱讀:318 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關怎么判斷是瀏覽器還是node環境,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

node中window是未定義;setImmediate是定義的,在瀏覽器中未定義

timer階段:這個階段會執行setTimeout和setInterval

check階段:執行setImmediate

macro task [task] 宏任務 :script(頁面代碼)、setTimeout、setInterval、I/O事件、UI交互事件(點擊事件)

micro task [job]  微任務: Promise、process.nextTick、Promise().then()

宏任務可以有多個隊列

微任務只有一個隊列

setTimeout任務之間,推遲執行的毫秒數越小,排在隊列里面越靠前

在node里面,timers(setTimeout、setInterval)會優先于setImmediate

setTimeout(() => {
  console.log('setTimeout')
},0);  // 大于1000時,會先執行setImmediate
setImmediate(()=> { console.log('setImmediate')})
console.log('start');
setTimeout(function (){
  console.log('timeout');
},10);
new Promise((resolve) => {
  console.log('promise');
  resolve()
  setTimeout(() => {
    console.log('Promsie中的setTimeout');
  },0);
}).then(() => {
  console.log('then');
});
console.log('end');

運行機制

1. 在執行棧中執行一個宏任務。

2. 執行過程中遇到微任務,將微任務添加到微任務隊列中。

3. 當前宏任務執行完畢,立即執行微任務隊列中的任務。

4. 當前微任務隊列中的任務執行完畢,檢查渲染,GUI線程接管渲染。

5. 渲染完畢后,js線程接管,開啟下一次事件循環,執行下一次宏任務(事件隊列中取)。

關于“怎么判斷是瀏覽器還是node環境”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

堆龙德庆县| 盐山县| 南和县| 盐池县| 武鸣县| 灵武市| 措美县| 无极县| 大名县| 兴仁县| 南充市| 郎溪县| 林口县| 泽库县| 沁阳市| 辽中县| 仪陇县| 大同县| 修文县| 河北省| 祁阳县| 拉萨市| 洮南市| 汉中市| 乌兰察布市| 甘肃省| 浦江县| 芦山县| 阿坝县| 南岸区| 南川市| 安阳县| 仁布县| 宁远县| 昌邑市| 北碚区| 于都县| 双城市| 麦盖提县| 舟曲县| 叙永县|