Warum die Verwendung von Rückrufen in AngularJS-Versprechensketten schädlich ist
Es wird oft empfohlen, eine Rückruffunktion für AngularJS-Dienste bereitzustellen, wie im gezeigt Codeausschnitt unten:
app.controller('tokenCtrl', function($scope, tokenService) { tokenService.getTokens(function callbackFn(tokens) { $scope.tokens = tokens; }); });
Diese Praxis wird jedoch als Anti-Pattern nicht empfohlen. AngularJS-Dienste wie $http geben Versprechen zurück, und das Anhängen von Callback-Methoden an ihre .then-Methoden stellt eine unerwünschte Umkehrung der Kontrolle dar.
Refactoring
Um dieses Problem zu beheben, ändern Sie die Code wie folgt:
app.controller('tokenCtrl', function($scope, tokenService) { tokenService.getTokens() .then(function(response) { $scope.tokens = response.data; }); });
Im Servicemodul:
app.factory('tokenService', function($http) { var getTokens = function() { return $http.get('/api/tokens'); }; return { getTokens: getTokens }; });
Dieses Refactoring eliminiert die Callback-Funktion und behält den gewünschten Kontrollfluss durch die .then-Methode bei.
Begründung für Refactoring
Rückrufe wie im Originalcode implementiert:
Das obige ist der detaillierte Inhalt vonWarum sind Rückrufe in AngularJS Promise Chains schädlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!