コールバックが AngularJS Promise チェーンに悪影響を与えるのはなぜですか?

Patricia Arquette
リリース: 2024-11-13 05:08:02
オリジナル
371 人が閲覧しました

Why are Callbacks Detrimental in AngularJS Promise Chains?

AngularJS Promise Chains でコールバックを使用することが有害である理由

よくあるように、AngularJS サービスにコールバック関数を提供することが推奨されます。以下のコード スニペット:

app.controller('tokenCtrl', function($scope, tokenService) {
    tokenService.getTokens(function callbackFn(tokens) {
        $scope.tokens = tokens;
    });
});
ログイン後にコピー

ただし、この方法はアンチパターンとして推奨されません。 $http のような AngularJS サービスは Promise を返し、コールバック メソッドをその .then メソッドにアタッチすると、望ましくない制御の反転が行われます。

リファクタリング

この問題を修正するには、次のようなコード:

app.controller('tokenCtrl', function($scope, tokenService) {
    tokenService.getTokens()
        .then(function(response) {
            $scope.tokens = response.data;
        });
});
ログイン後にコピー

サービス モジュール内:

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

    return {
        getTokens: getTokens
    };
});
ログイン後にコピー

このリファクタリングにより、コールバック関数が削除され、.then メソッドを通じて必要な制御フローが維持されます。

リファクタリングの正当性

元のコードで実装されているコールバック:

  • 成功/エラー ハンドラーのさらなる連鎖を妨げます。
  • シフト コントロール呼び出し元モジュールから呼び出されるモジュールへのオーバーレスポンス処理。
  • Promise をコールバックとして使用しながら、同時に Promise の複雑さを導入します。この矛盾によりコードが混乱します。

以上がコールバックが AngularJS Promise チェーンに悪影響を与えるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート