AngularJS $ http 성공 / 오류 메서드가 더 이상 사용되지 않는 이유는 무엇입니까? v1.6에서 제거 되었습니까?
AngularJS 문서에는 $http
success
및 error
메서드에 대한 사용 중단 알림이 있습니다. 이 추상화가 라이브러리에서 제거 된 특별한 이유가 있습니까?
문제는 .success
및 .error
메서드가 반환 값 을 무시 하기 때문에 체인 할 수 없다는 것 입니다. 에 익숙한 사람들을위한이 발생하는 문제가 체인 에 익숙하지 않은 사람들에서 가난한 코드와 격려 체인 . 지연된 안티 패턴 을 사용하는 StackOverflow의 모든 예제를 확인하십시오 .
AngularJS 팀 중 하나를 인용하려면 :
IMO
.success
와.error
처음부터 API 디자인의 나쁜 비트를했다. 이 문제는 개발자가 동일한 방식으로 또는 그 반대의 경우 를 기대.success
하고.error
작동 하기 때문에 혼란스러워하는 여러 상황을 강조합니다.then
. 완벽한 세상에서 저는이$http
특정한 "약속"을 버리고 싶습니다 . 대신 개발자가 표준$q
promise API.then
및.catch
. 응답 객체로 작업하는 것보다 명시 적 매개 변수로 작업 할 때 IMO의 이점은 거의 없습니다.— AngularJS 문제 # 10508
$http
.success/.error
은.then
작동 방식과 다릅니다 .
지원 중단 알림 (v1.5)
$http
기존의 약속 방법success
과는error
사용되지 않습니다.then
대신 표준 방법을 사용하십시오 . 이로$httpProvider.useLegacyPromiseExtensions
설정 되면false
이러한 메서드에서$http/legacy
오류가 발생합니다.
최신 정보
더 이상 사용되지 않는 메서드 .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; ... });
프라 미스와 관련하여 자바 스크립트가 사용하는 패턴은에만 해당 .then(successCallback, errorCallback)
되므로 아마도 js 패턴을 사용하려고 할 것입니다.
'Programing' 카테고리의 다른 글
하나의 클래스 메서드에 별칭을 지정하는 더 간단한 (한 줄) 구문이 있습니까? (0) | 2021.01.08 |
---|---|
리소스로드 실패 : 서버가 404 (찾을 수 없음) 상태로 응답했습니다. (0) | 2021.01.08 |
C ++에서 operator ==를 양방향으로 오버로드해야합니까? (0) | 2021.01.08 |
“svn update -r”에 해당하는 git은 무엇입니까? (0) | 2021.01.08 |
boost :: shared_ptr이있는 NULL 포인터? (0) | 2021.01.08 |