国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

JS ES6異步解決方案

瀏覽:76日期:2024-03-30 14:30:45
最初使用回調函數

​ 由于最初j s官方沒有明確的規范,各種第三方庫中封裝的異步函數中傳的回調函數中的參數沒有明確的規范, 沒有明確各個參數的意義, 不便于使用。

​ 但是node中有明確的規范

​ node中的的回調模式:

1. 所有回調函數必須有兩個參數,第一個參數表示錯誤,第二個參數表示結果

2. 所有回調函數必須作為函數最后的參數

3. 所有回調函數不能作為屬性出現

es6 異步處理模型

Es6 出現以后, 官方就提出了異步處理的規范, 提出了一種適用于所有異步場景的處理模型。該模型有:

兩個階段: 未決unsettled, 已決settled。 三個狀態: pending掛起狀態 , resolved成功, rejected失敗 總是從未決階段推向已決階段,且已決階段的狀態不再改變

任務已決狀態后可能需要后續處理,

針對resolved的后續處理我們稱之為thenable 針對rejected的后續處理我們稱之為catchable為該異步模型量身打造的API : promise

如何使用promise

Copy

const task = new Promise((resolve, reject) => { // 任務未決階段代碼 // 立即執行 console.log('開始100米長跑'); setTimeout(() => { if (Math.random() > 0.5) { // 成功: 跑完了 // 推向成功 resolve('跑完了'); } else { // 失敗: 腿摔斷了 // 推向失敗 reject('腿摔斷了'); } }, 1000)});task.then((result) => { console.log(result);}).catch((error) => { console.log(error);})

1s 后任務推向已決, 后續處理在then 或者 catch中 處理。

注意

pending狀態 =》rejected狀態 :

Copy

1. 調用reject

2. 代碼執行報錯

3. 手動拋出錯誤

后續處理函數一定是異步的,且會放到微隊列中,

j s執行棧清空后會先執行微隊列中的任務,微隊列里任務清空后才會執行宏隊列中的任務。

宏任務隊列有:setTimeout,setInterval,setImmediately,I/O,UI render 微任務隊列有:promise,process.nexttick,Object.observe(已經不用了),Mutation.observe

Async await 是es7新增的promise的語法糖大家也可以了解下,本文只是對promise做了個概述,要掌握的其他細節還有很多

以上就是JS ES6異步解決方案的詳細內容,更多關于ES6異步解決方案的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 国产精品永久免费自在线观看 | 老司机亚洲精品影院 | 日本黄页网站在线观看 | 亚洲精品在线视频 | 亚洲自拍另类 | 男女国产视频 | 欧美视频区 | 久久亚洲精品tv | 黄页网站18以下禁止观看 | 国产a精品三级 | 国产福利拍拍拍 | 国内精品小视频 | 91精品国产高清久久久久久io | 国产精品11p | 亚洲欧美一区二区三区四区 | 久久青草网站 | 国产一区二区三区在线免费 | 久久橹 | 欧美一级网 | 亚洲日本在线观看 | 玖玖爱zh综合伊人久久 | 成人一级视频 | 欧美精品亚洲精品日韩一区 | 色屁屁一区二区三区视频国产 | 免费视频久久 | 精品一区国产 | 综合亚洲欧美日韩一区二区 | 三级黄色网| 国产高清在线看免费视频观 | 久久国产精品免费观看 | 久久精品7 | 国产美女一区二区在线观看 | 精品国产成人在线 | 亚洲专区在线视频 | 久久综合狠狠综合久久97色 | 中国日本高清免费视频网 | 亚洲欧美精品网站在线观看 | 成人免费视频播放 | 国产大臿蕉香蕉大视频女 | 国产精品一级毛片不收费 | 国产亚洲高清在线精品不卡 |