検索

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

JavaScript - Promise の非同期操作に関する疑問と、それをよりエレガントに記述する方法

リーリー
大家讲道理大家讲道理2707日前878

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

  • 伊谢尔伦

    伊谢尔伦2017-07-05 11:06:56

    Promise は、非同期フロー制御を解決するために生まれました。
    then メソッドは一見するとコールバックのように見えますが、then の特徴は例外とチェーン書き込みを処理できることです。 ajax リクエストの依存関係は次のとおりです:

    A1

    -> A2; Ab + Ac
    -> 広告; A2 -> Promise を使うとコードがとてもわかりやすくなります
    まず A1、A2、Aa、Ab、Ac、Ad、Ax を用意します。これらはすべて依存関係に基づいて Promise オブジェクトを返す関数です。これ以上は書きません。その後、Promise のパフォーマンスをご覧ください: リーリー A1、Aa、および Ac には依存関係がなく、同時に実行され、依存関係の完了に基づいて続行されます。
    どの Ajax 問題が発生しても、最後の Err イベントがトリガーされてエラーが均一に処理されます。それを記述するためのコールバック 試してみてください。効率が悪いか、依存関係を判断するためにコールバック メソッドに大量のコードが追加されています。

    参照コード:
    リーリー

    上記のコードはエラーを処理せず、非常に長いので、依存関係がより複雑な場合は、コードの量が想像でき、エラーが発生しやすくなります。

    返事
    0
  • 为情所困

    为情所困2017-07-05 11:06:56

    あなたの理解は基本的に正しいです。実際、Promiseそれはあまり単純化されておらず、ネストレベルを減らしただけです。

    つまり、究極の解決策はAsync/Await、質問者が情報を確認できるということです。

    返事
    0
  • 怪我咯

    怪我咯2017-07-05 11:06:56

    エレガンスが次々とコールバッククリスマスツリーの形を整えています。これはPromiseの貢献です。

    プログラムを書くときは 7 つまたは 8 つのコールバックをネストする必要がありますが、Promise の方がはるかに優れています。

    書くのが面倒だと思うなら使わずにAsync/Awaitを使ってください

    返事
    0
  • キャンセル返事