ここ数日、「promise」に関する技術的な記事をたくさん読みましたが、目がくらむばかりで、ほんの少しの知識とその機能を大まかに理解しているだけです。
まず問題について話しましょう。プロジェクトでは Ajax が最も使用されています。「複数の Ajax 依存関係リクエスト」という非常に不快な問題があります。次のように仮定します: R1 > R2( r1_result ) > R3( r2_result )、
最も問題のない方法は、すべてを同期することです。結果はひどいものになります。ページがフリーズして読み込みが停止すると、非同期操作を使用する際に不快な点となるのは、コールバックの層が何層にもわたって行われることです。今後さらに増えるでしょう。 . 操作により異なります。
人生は投げ銭なので、最初の段落に戻っていろいろ読んでいると、ある兄弟が約束の原理を分析していました。この兄弟のコードです。http://malcolmyu。 github.io/ma...
これを読んで、また不思議に思ったのですが、 then( function(){ do... } )、これってコールバックではないでしょうか? ひょっとして、投げる意味は、シュガー構文を使用してください(信じられません)。
存在は合理的です。結局のところ、promise を合理的に使用する方法と、ajax プロセスをよりエレガントに操作する方法はどうすればよいでしょうか?ちなみに( axios\fetch.js )を使ってみていかがでしょうか?
Promise は、非同期フロー制御を解決するために生まれました。
リーリーthen メソッドは一見するとコールバックのように見えますが、then の特徴は例外とチェーン書き込みを処理できることです。 ajax リクエストの依存関係は次のとおりです:
上記のコードはエラーを処理せず、非常に長いので、依存関係がより複雑な場合は、コードの量が想像でき、エラーが発生しやすくなります。
あなたの理解は基本的に正しいです。実際、
Promise
それはあまり単純化されておらず、ネストレベルを減らしただけです。つまり、究極の解決策は
Async/Await
、質問者が情報を確認できるということです。エレガンスが次々とコールバッククリスマスツリーの形を整えています。これはPromiseの貢献です。
プログラムを書くときは 7 つまたは 8 つのコールバックをネストする必要がありますが、Promise の方がはるかに優れています。
書くのが面倒だと思うなら使わずにAsync/Awaitを使ってください