午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

瀏覽:181日期: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
相關文章:
主站蜘蛛池模板: av中文在线观看 | 国产一区二区三区日韩 | 成人欧美一区二区三区黑人孕妇 | 亚洲老头老太树林hd | 亚洲精品一区在线观看 | 毛片视频免费观看 | 国产91精品久久久 | av片国产| 中国黄色网页 | 日本黄色录像视频 | 丁香伊人 | 在线天堂中文字幕 | 成人中文字幕在线观看 | 最新av在线免费观看 | av手机| 超碰在线网站 | 欧美影视一区二区三区 | 中文字幕在线字幕中文 | 在线日韩一区二区 | 青娱乐成人 | 亚洲高清在线观看视频 | 国产精品一区二区视频 | 成人免费毛片视频 | 国产精品美女 | av网站免费在线观看 | 亚洲精品观看 | 成年人在线观看 | 国产免费一区二区三区最新不卡 | 日韩啊啊啊| 国产第5页 | 久久精品在线观看 | 色涩网站 | 亚洲最大激情网 | 久久精品无码一区二区三区 | 精彩久久| h在线看 | 天天艹天天射 | 久久久婷婷 | 精品国产户外野外 | 四虎影视永久免费 | 欧美 日韩 精品 |