色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

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

瀏覽:79日期: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
相關文章:
主站蜘蛛池模板: 国产在线观看第一页 | 亚欧成人一区二区 | 久久国产精品无码网站 | 一级毛片免费观看视频 | a级精品九九九大片免费看 a级毛片免费观看网站 | 中文字幕在线精品 | 欧美一级免费 | 欧美一级毛片日本 | 国内在线播放 | 免费国产a | 亚洲精品一区二区手机在线 | 免费看成人www的网站软件 | 成人国产一区二区 | 一级生性活免费视频 | 久久精品国产免费看久久精品 | 一区二区三区高清视频在线观看 | 免费一级美国片在线观看 | 国产精品自在自线亚洲 | 色播亚洲 | 国产免费亚洲 | 亚洲精品字幕一区二区三区 | 成人午夜毛片在线看 | a级毛片免费观看网站 | 成年视频国产免费观看 | 高清精品女厕在线观看 | 国产一级二级三级视频 | 97在线观看视频免费 | japanese色系国产在线高清 | 日韩美女一级毛片 | 亚洲系列在线 | 91免费公开视频 | 国内精品视频九九九九 | 午夜宅男在线永久免费观看网 | 久久99精品久久久久久秒播 | 97一级毛片全部免费播放 | 国产手机精品一区二区 | 久久国产经典视频 | 国产性做久久久久久 | 亚洲国产系列久久精品99人人 | 性久久久久久久久 | 免费看久久 |