欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

今天就跟大家聊聊有關(guān)JavaScript中怎么實(shí)現(xiàn)事件循環(huán),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、鄂托克前網(wǎng)站維護(hù)、網(wǎng)站推廣。

1.Main.js 執(zhí)行

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

2.調(diào)用secondFunction

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

3.調(diào)用secondFunction引起調(diào)用firstFunction

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

4.執(zhí)行firstFunction,輸出“I'm  first!”,接著由于firstFunction執(zhí)行完畢,firstFunction會(huì)從調(diào)用棧中彈出。

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

5.secondFunction繼續(xù)執(zhí)行,輸出“I'm  second!”。接著由于secondFunction執(zhí)行完畢,secondFunction從調(diào)用棧中彈出。

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

6.***,main.js執(zhí)行完畢,也從棧中彈出。

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

Event Loop:事件循環(huán)

了解了call stack在JavaScript引擎中是如何工作了之后,來(lái)看下如何使用異步回調(diào)函數(shù)來(lái)避免blocking  代碼。(譯者注:回調(diào)函數(shù)有多種實(shí)現(xiàn)方式,最常見的有:在函數(shù)中使用函數(shù)作用參數(shù)etc。)setTimeout就是使用的回調(diào)函數(shù)??磦€(gè)栗子:

/* Within main.js */  var firstFunction = function () {    console.log("I'm first!"); };  var secondFunction = function () {    setTimeout(firstFunction, 5000);  console.log("I'm second!"); };  secondFunction();  /* Results:  * => I'm second!  * (And 5 seconds later)  * => I'm first!  */

下邊模擬調(diào)用棧(在上個(gè)栗子的基礎(chǔ)上我們這次推前點(diǎn))

1....

2.secondFunction調(diào)用setTimeout,setTimeout入棧:

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

3.setTimeout執(zhí)行后,瀏覽器會(huì)把setTimeout的回調(diào)函數(shù)(在這個(gè)栗子中是firstFunction)放到Event Table中。Event  Table 就是個(gè)注冊(cè)站:調(diào)用棧讓Event Table注冊(cè)一個(gè)函數(shù),該函數(shù)會(huì)在5秒之后被調(diào)用。當(dāng)指定的事情發(fā)生時(shí),Event  Table會(huì)將這個(gè)函數(shù)移到Event Queue。Event Queue其實(shí)就是個(gè)緩沖區(qū)域,這里的函數(shù)等著被調(diào)用并移到調(diào)用棧。

問(wèn)題來(lái)了,什么時(shí)候函數(shù)會(huì)從Event Queue移到調(diào)用棧咧?JavaScript引擎依據(jù)一條規(guī)則:有一個(gè)monitoring  process(不知翻譯成啥好)會(huì)持續(xù)不斷地檢查調(diào)用棧是否為空,一旦為空,它會(huì)檢查Event  Queue里邊是否有等待被調(diào)用的函數(shù)。如果存在,它就會(huì)調(diào)用這個(gè)Queue中***個(gè)函數(shù)并將其移到調(diào)用棧中。如果Event  Queue為空,那么這個(gè)monitoring process會(huì)繼續(xù)不定期的檢查。這一整個(gè)過(guò)程就是Event Loop。

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

4.一旦回調(diào)函數(shù)加入到Event表中,代碼不會(huì)被block住,瀏覽器不會(huì)等待5秒之后再繼續(xù)處理接下去的代碼,相反,瀏覽器繼續(xù)執(zhí)行secondFunction的下一行代碼,console.log。

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

5.在background,Event Table會(huì)持續(xù)地監(jiān)測(cè)是否有事件觸發(fā),將函數(shù)移到Event  Queue中。在這個(gè)栗子中,secondFunction執(zhí)行完畢,接著main.js也執(zhí)行完畢。

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

6.從回調(diào)函數(shù)被放入Event Table后5秒鐘,Event Table把firstFucntion移到Event Queue中。

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

7.由于事件循環(huán)持續(xù)地監(jiān)測(cè)調(diào)用棧是否已空,此時(shí)它一注意到調(diào)用棧空了,就調(diào)用firstFunction并創(chuàng)建一個(gè)新的調(diào)用棧。

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

8.一旦firstFunction執(zhí)行完畢,調(diào)用??樟?,Event Table里也沒(méi)有注冊(cè)函數(shù),Event Queue也為空。

JavaScript中怎么實(shí)現(xiàn)事件循環(huán)

看完上述內(nèi)容,你們對(duì)JavaScript中怎么實(shí)現(xiàn)事件循環(huán)有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

分享標(biāo)題:JavaScript中怎么實(shí)現(xiàn)事件循環(huán)
網(wǎng)站地址:http://aaarwkj.com/article12/jjjpdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、App設(shè)計(jì)標(biāo)簽優(yōu)化、微信小程序、營(yíng)銷型網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
麻豆国产传媒片在线观看| 日韩精品一区二区一牛| 欧美在线观看黄片视频| 日本免费精品一区二区三区四区| 免费观看久久久激情片| 一区二区日韩视频九一蜜桃| 日韩视频精品一区二区| 无遮挡无掩盖的免费网站| 国产丰满熟女视频免费| 午夜av一区二区三区| 久久精品女人天堂av免费观看 | 日韩精品中文字幕电影| 亚洲免费成人高清电影| 国产欧美日韩精品av| 久久综激情丁香开心婷婷| 深夜av免费在线观看| 国产欧美日韩综合91| 人妻少妇麻豆中文字幕久久精品| 国产免费成人在线视频| 91熟女激情五月综合| 久久久国产一区二区三区| 色婷婷av一区二区三| 美女在线免费观看av| 午夜在线观看视频免费| 国产亚洲综合一区二区三区| 国产成人一区二区三区影| 久久香蕉国产线看观看av| 亚洲巨大黑人一区二区三区| 久久精品国产亚洲av高清综合 | 91美女人妻精品久久| 久久久久久国产综合精品| 精品毛片在线播放网站不卡| 亚洲av中文久久精品国内| 日韩在线视频不卡播放| 日本高清中文精品在线不卡| 婷婷91麻豆精品国产人妻| 国产成人三级视频网站| 精品少妇人妻av免费久久久| 婷婷综合伊人久久狠狠| 亚洲成人有码在线观看| 高清不卡av在线播放|