AngularJS 프라미스 체인에서 콜백을 사용하는 것이 해로운 이유
다음에서 볼 수 있듯이 AngularJS 서비스에 콜백 기능을 제공하는 것이 종종 제안됩니다. 아래 코드 조각:
app.controller('tokenCtrl', function($scope, tokenService) { tokenService.getTokens(function callbackFn(tokens) { $scope.tokens = tokens; }); });
그러나 이 방법은 안티 패턴으로 인해 권장되지 않습니다. $http 반환 약속과 같은 AngularJS 서비스와 .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 메소드를 통해 원하는 제어 흐름을 유지합니다.
리팩토링의 정당성
원래 코드에 구현된 콜백:
위 내용은 AngularJS Promise Chain에서 콜백이 해로운 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!