ホームページ >ウェブフロントエンド >jsチュートリアル >Promise の `.then` メソッドでコールバックを使用することがアンチパターンなのはなぜですか?

Promise の `.then` メソッドでコールバックを使用することがアンチパターンなのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-14 14:40:02741ブラウズ

Why is Using Callbacks in Promise `.then` Methods an Anti-Pattern?

Promise .then メソッドでのコールバックの使用: アンチパターン

で見られるように、AngularJS サービスにコールバック関数を提供する実践あなたが提供したコードスニペットは便利に見えるかもしれませんが、アンチパターンに従っています。このアプローチは、Promise が意図した非同期プログラミング フローと制御の反転を中断します。

なぜアンチパターンなのでしょうか?

  • 連鎖を中断します。 Promise .then メソッドを使用すると、複数の非同期操作を連鎖させることができます。コールバックを使用すると、ある操作の結果を後続の操作で簡単に処理し続けることができなくなります。
  • 制御の反転: 元のコードは、コンシューマー モジュールからプロバイダー モジュールへのコールバック。これにより、実行フローの管理とデバッグが難しくなります。
  • 不必要な Promise の複雑さ: Promise は、非同期操作を処理するためのメカニズムを提供します。 Promise をコールバックでラップすると、不必要な複雑さが生じ、コードの意図がわかりにくくなります。

リファクタリング ソリューション:

コードをリファクタリングしてこれらの問題を解決するには、コールバックなしでプレーンな .then メソッドを使用できます。 function:

var getTokens = function() {
  return $http.get('/api/tokens');
};

コンシューマ モジュールでは、.then を直接使用して操作をチェーンできます:

yourModule.getTokens()
  .then(function(response) {
    // handle it
  });

リファクタリングされたコードの利点:

  • チェーンを維持します: を返すことによってgetTokens 関数からの約束により、後続の操作を簡単に連鎖させることができます。
  • 制御の保持: コンシューマ モジュールは、コールバックに依存せずに非同期操作の実行を制御します。
  • コードの簡素化: リファクタリングされたコードにより、非同期処理プロセスが簡素化され、理解しやすくなります。

以上がPromise の `.then` メソッドでコールバックを使用することがアンチパターンなのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。