Angular Http - 약속 또는 구독
Angular에 대한 몇 가지 과정을 보고 Http 요청에서 데이터를 관리하는 다른 방법이 있다는 것을 알게 되었습니다.
- 관측 가능,
.map()
,.subscribe()
- 약속 사용,
.toPromise()
,.then()
,.catch()
사용한 적이 있다toPromise()
AngularJS Http 서비스와 비슷하다는 것을 알게 되었습니다.
어떤 시나리오에서 Observatibles를 사용해야 합니까?
반응형 프로그래밍 스타일을 좋아하고 응용 프로그램 내에서 일관되게 단일 이벤트(이벤트 스트림 대신)에도 항상 관측 가능 항목을 사용하려면 관측 가능 항목을 사용하십시오.그게 문제가 되지 않는다면toPromise()
.
관측 가능성의 한 가지 장점은 요청을 취소할 수 있다는 것입니다.
응답은 사용할 데이터 스트림이 아닌 한,.toPromise()
필요없는 대답을 계속 듣는 것은 무의미하고 변하지 않을 것이기 때문입니다.
갱신하다
.toPromise()
RxJs 7에서는 더 이상 사용되지 않게 되었습니다.firstValueFrom
그리고.lastValueFrom
.
따라서 코드는 다음과 같습니다.
await lastValueFrom(httpRequest$)
상세한 것에 대하여는, 다음의 링크를 확인해 주세요.
https://httpsjs.dev/decruptions/to-https
https://www.youtube.com/watch?v=3aeK5SfWBSU
angular expectable 기본 http 요구.Promise()를 호출하여 약속으로 변환할 수 있습니다.하지만 그것은 필요하지 않다.Angular는 호출에 의해 해결된 후 http 요청을 구독 해제합니다.
`_xhr.removeEventListener('load', onLoad);
_xhr.removeEventListener('error', onError);
_xhr.abort();`
관측 가능한 것은 취소할 수 있지만 약속은 취소할 수 없습니다.
오픈 요구는 컴포넌트가 파기되어 메모리누설이 발생한 후에도 유지됩니다.이러한 요구는 컴포넌트가 파기된 후 관찰 가능한 컴포넌트의 등록을 해제하거나 파기 메서드를 호출하여 방지할 수 있습니다.메모리 누수를 방지하기 위한 등록 해제 방법
결론적으로 메모리 누전 방지 기법과 함께 관찰 가능한 것을 사용하는 것이 좋습니다.
언급URL : https://stackoverflow.com/questions/39265534/angular-http-topromise-or-subscribe
'programing' 카테고리의 다른 글
여러 인라인 스타일 개체를 결합하려면 어떻게 해야 합니까? (0) | 2023.02.23 |
---|---|
Jackson JSON Marshall은 getter를 무시합니다. (0) | 2023.02.23 |
$window 또는 $location을 사용한 각도 리다이렉트JS (0) | 2023.02.23 |
$.ajax 유틸리티의 JQuery 오류 옵션 (0) | 2023.02.23 |
React 클래스 구성 요소에서 작업 전후의 로드 상태 설정 (0) | 2023.02.23 |