ホームページ >ウェブフロントエンド >jsチュートリアル >Promise .then メソッドを使用したコールバックはなぜ悪い考えなのでしょうか?

Promise .then メソッドを使用したコールバックはなぜ悪い考えなのでしょうか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-16 09:03:02769ブラウズ

Why are Callbacks with Promise .then Methods a Bad Idea?

Promise .then メソッドでコールバックを使用した場合の不快な結果

開発者は、非同期操作を管理するためのより最適なアプローチを探していると、次のような提案に遭遇する可能性があります。 AngularJS サービス内でのコールバック関数の使用。ただし、そのような行為は望ましくない結果を招く可能性があるため、精査する必要があります。

提供されたコード スニペットでは、tokenService は getTokens メソッド内でコールバックを使用して HTTP リクエストの結果を処理します。ただし、このアプローチにはいくつかの欠点があります。

  • 壊れたフロー: 成功ハンドラーと失敗ハンドラーのシームレスな連鎖が妨げられます。
  • 制御反転: 応答処理の制御が呼び出し元から呼び出されるモジュールに移されるため、混乱が生じる可能性があります。
  • 一貫性のない Promises: コードには Promise が組み込まれていますが、応答の処理には依然としてコールバックが使用されます。

Promise 指向の処理のためのリファクタリング

この問題を修正するには、Promise の非同期の性質を完全に受け入れるようにコードを再設計する必要があります。 。改訂版では、getTokens メソッドは、呼び出し元が独自の then メソッド内で利用できる Promise を返すだけです。

var getTokens = function() {
  return $http.get('/api/tokens');
};
yourModule.getTokens()
  .then(function(response) {
    // handle it
  });

Promise 中心の設計の利点

このアプローチには、コールバックベースのメソッドに比べて多くの利点があります。

  • 強化されたフロー: 操作をより効果的に連鎖させることができ、論理的で合理化された実行フローを保証します。
  • 明確さ: 応答処理の責任は呼び出し元にあり、曖昧さが排除されます。
  • 一貫性: コードベース全体で一貫して約束が採用され、理解を促進します。

Promise .then メソッドでコールバックを使用することの欠点を理解し、より Promise 指向のアプローチを採用することで、開発者は非同期コードの処理方法を大幅に改善できます。これにより、コードがより明確で管理しやすくなり、開発者のエクスペリエンスが向上し、より保守しやすくバグのないコードベースが促進されます。

以上がPromise .then メソッドを使用したコールバックはなぜ悪い考えなのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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