亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

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

瀏覽:107日期: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
相關文章:
主站蜘蛛池模板: 禁止18周岁进入免费网站观看 | 久久免费视频在线观看 | 三级免费网站 | 久久亚洲国产的中文 | 亚洲系列国产系列 | 一级毛片在线完整免费观看 | 波多野结衣中文在线播放 | 欧美大片一区二区三区 | 女人张开腿让男人桶视频免费大全 | 国产午夜亚洲精品第一区 | 亚洲国产欧美在线人成精品一区二区 | 成人毛片在线播放 | 欧美在线高清视频 | 欧美亚洲另类在线 | 国产视频综合 | 精品成人毛片一区二区视 | 黄色大片三级 | 在线观看免费为成年视频 | 最刺激黄a大片免费观看 | 大焦伊人 | 国产三级理论 | 精品久久久久久综合日本 | 欧美日韩一区二区在线观看视频 | 国内精品一区二区三区最新 | 色综合久久久 | 国内高清久久久久久久久 | 久久一区二区三区免费 | 在线另类视频 | 99久久精品国产亚洲 | 美女wc | 国产亚洲女在线精品 | 中文字幕二区 | 日本特黄a级高清免费酷网 日本特黄特色 | 欧美久久精品 | 久久亚洲成人 | 国产成人精品日本亚洲麻豆 | 在线国产观看 | 久久久精品免费热线观看 | 国产日韩视频在线观看 | 精品国产亚洲一区二区三区 | 韩国免费网站成人 |