亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

javascript - react 中各個聲明周期中異步的執行順序

瀏覽:75日期:2023-03-04 11:05:40

問題描述

componentWillMount(){ setTimeout(()=>{ alert(1); },100) } componentDidMount(){ setTimeout(()=>{ alert(2); },100) }

組件中的2個生命周期函數都有異步操作,執行順序是嚴格按照聲明周期的順序,也就是先1后2,還是不確定執行順序是根據插入到消息隊列里面的先后順序執行的?問題可以理解為假設componentWillMount這個異步結果返回時間很長很長,而componentDidMount這個異步結果返回時間很短,有沒有可能先執行componentDidMount里面的回調結果,然后在執行componentWillMount里面的回調結果

問題解答

回答1:

簡化問題為:假設兩個異步動作 A 和 B 觸發順序已知,那么 A 和 B 中同樣延時的 setTimeout 是否能保證順序?

答案顯然是不能的。例如當 A 和 B 之間只有微秒級延時時,兩個設定了巨大延時的 setTimeout 就不能保證按照調用 setTimeout 時的先后順序觸發。

不能夠依賴這種脆弱的時序關系來保證代碼的執行順序。在 Code Review 中如果遇到利用這種關系來實現數據初始化、異步請求等功能的代碼,答主肯定是會提出意見的。對于異步的控制流,可以采用 Promise / yield 等方式來保證執行順序,在這里就不贅述了。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 欧美一区二区视频在线观看 | 亚洲一区二区日韩欧美gif | 免费一级做a爰片性色毛片 免费一级做a爰片性视频 | 91一区二区午夜免费福利网站 | 一级成人a毛片免费播放 | 日本一级级特黄特色大片 | 成 人 免 费 黄 色 | 亚洲经典一区二区三区 | 性欧美一级毛片在线播放 | 欧洲成人爽视频在线观看 | 免费一看一级欧美 | 色综合久 | 国产一区欧美 | 微拍 福利 视频 国产 | 国产尤物视频 | 成人亚洲精品一区 | 91久久国产青草亚洲 | 天天色综合天天 | a免费看 | 亚洲成人手机在线 | 日韩在线视频不卡一区二区三区 | 一级片软件 | 精品欧美一区二区三区在线 | 中文字幕亚洲精品第一区 | 婷婷六月在线 | 一级做a爱片久久毛片 | 欧美成人性生活视频 | 久久久国产精品网站 | 中文字幕在线永久 | 亚洲色图激情 | 美女va| 4388x17亚洲最大成人网 | 中文字幕在线永久视频 | 最新国产精品精品视频 | 在线高清视频18jin观看 | 欧美日韩在线观看一区 | 在线观看亚洲专3333 | 国产美女视频国产视视频 | 最新国产精品视频 | 亚洲欧美日韩精品高清 | 亚洲精品国产一区二区在线 |