ホームページ  >  に質問  >  本文

JavaScript - React の各宣言サイクルでの非同期実行順序

リーリー

コンポーネント内の 2 つのライフ サイクル関数には非同期操作があります。実行順序は宣言サイクルの順序 (最初に 1、次に 2) に厳密に従っています。実行順序が次の順序に基づいているかどうかはまだ不明です。メッセージキューに挿入されたオーダー。この問題は、componentWillMount の非同期結果が非常に長い時間を返し、componentDidMount の非同期結果が非常に短い時間を返すと仮定していると理解できますが、まず、componentDidMount でコールバック結果を実行し、次に、componentDidMount でコールバック結果を実行することは可能ですか?コンポーネントウィルマウント

黄舟黄舟2685日前873

全員に返信(1)返信します

  • 漂亮男人

    漂亮男人2017-07-05 10:58:58

    単純化した質問は次のとおりです。2 つの非同期アクション A と B のトリガー順序がわかっていると仮定すると、A と B での同じ遅延の順序は保証できますか? setTimeout

    答えは明らかにノーです。たとえば、A と B の間にマイクロ秒の遅延しかない場合、大きな遅延を持つ 2 つの

    setTimeout 就不能保证按照调用 setTimeout が呼び出される順序でトリガーされることは保証できません。

    コードの実行順序を保証するために、この脆弱なタイミング関係に依存することはできません。コードレビューで、この関係を使用してデータの初期化や非同期リクエストなどの機能を実装するコードに遭遇した場合、回答者は間違いなく意見を言うでしょう。非同期制御フローの場合、Promise / yield などのメソッドを使用して実行順序を保証できますが、ここでは説明しません。

    返事
    0
  • キャンセル返事