真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么判斷是瀏覽器還是node環(huán)境

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

創(chuàng)新互聯(lián)建站是一家專業(yè)提供東洲企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都做網(wǎng)站H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為東洲眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。

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

timer階段:這個階段會執(zhí)行setTimeout和setInterval

check階段:執(zhí)行setImmediate

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

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

宏任務(wù)可以有多個隊列

微任務(wù)只有一個隊列

setTimeout任務(wù)之間,推遲執(zhí)行的毫秒數(shù)越小,排在隊列里面越靠前

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

setTimeout(() => {
  console.log('setTimeout')
},0);  // 大于1000時,會先執(zhí)行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. 在執(zhí)行棧中執(zhí)行一個宏任務(wù)。

2. 執(zhí)行過程中遇到微任務(wù),將微任務(wù)添加到微任務(wù)隊列中。

3. 當(dāng)前宏任務(wù)執(zhí)行完畢,立即執(zhí)行微任務(wù)隊列中的任務(wù)。

4. 當(dāng)前微任務(wù)隊列中的任務(wù)執(zhí)行完畢,檢查渲染,GUI線程接管渲染。

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

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


網(wǎng)站名稱:怎么判斷是瀏覽器還是node環(huán)境
瀏覽地址:http://weahome.cn/article/psjjdg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部