Programing

AngularJS $ http 성공 / 오류 메서드가 더 이상 사용되지 않는 이유는 무엇입니까?

lottogame 2021. 1. 8. 07:46
반응형

AngularJS $ http 성공 / 오류 메서드가 더 이상 사용되지 않는 이유는 무엇입니까? v1.6에서 제거 되었습니까?


AngularJS 문서에는 $http successerror메서드에 대한 사용 중단 알림이 있습니다. 이 추상화가 라이브러리에서 제거 된 특별한 이유가 있습니까?


문제는 .success.error메서드가 반환 값무시 하기 때문에 체인없다는 것 입니다. 에 익숙한 사람들을위한이 발생하는 문제가 체인 에 익숙하지 않은 사람들에서 가난한 코드와 격려 체인 . 지연된 안티 패턴 을 사용하는 StackOverflow의 모든 예제를 확인하십시오 .

AngularJS 팀 중 하나를 인용하려면 :

IMO .success.error처음부터 API 디자인의 나쁜 비트를했다. 이 문제는 개발자가 동일한 방식으로 또는 그 반대의 경우 기대 .success하고 .error작동 하기 때문에 혼란스러워하는 여러 상황을 강조합니다 .then. 완벽한 세상에서 저는이 $http특정한 "약속"을 버리고 싶습니다 . 대신 개발자가 표준 $qpromise API .then.catch. 응답 객체로 작업하는 것보다 명시 적 매개 변수로 작업 할 때 IMO의 이점은 거의 없습니다.

— AngularJS 문제 # 10508 $http .success/.error.then작동 방식과 다릅니다 .

지원 중단 알림 (v1.5)

$http기존의 약속 방법 success과는 error사용되지 않습니다. then대신 표준 방법을 사용하십시오 . 이로 $httpProvider.useLegacyPromiseExtensions설정 되면 false이러한 메서드에서 $http/legacy오류가 발생합니다.

— AngularJS $ http 서비스 API 참조-지원 중단 알림


최신 정보

더 이상 사용되지 않는 메서드 .success.error메서드는 AngularJS 1.6에서 제거되었습니다.

로 인해 b54a39 , $http의 사용되지 않는 사용자 정의 콜백 메소드 - .success().error()- 제거되었습니다. 대신 표준 .then()/ .catch()promise 메서드를 사용할 수 있지만 메서드 서명과 반환 값이 다릅니다.

$http(...)
  .then(function onSuccess(response) {
    // Handle success
    var data = response.data;
    var status = response.status;
    var statusText = response.statusText;
    var headers = response.headers;
    var config = response.config;
    ...
  }).catch(function onError(response) {
    // Handle error
    var data = response.data;
    var status = response.status;
    var statusText = response.statusText;
    var headers = response.headers;
    var config = response.config;
    ...
  });

— AngularJS 개발자 가이드-v1.6으로 마이그레이션-http


프라 미스와 관련하여 자바 스크립트가 사용하는 패턴은에만 해당 .then(successCallback, errorCallback)되므로 아마도 js 패턴을 사용하려고 할 것입니다.

참조 URL : https://stackoverflow.com/questions/35329384/why-are-angularjs-http-success-error-methods-deprecated-removed-from-v1-6

반응형