2017-12-21 2 views
-2

HttpClient 대신 Http를 사용하여 내 서비스에서이 호출을 수행하는 방법은 무엇입니까? HttpClient는 map() 호출을하지 않습니다.HttpClient 및 redux를 사용하여 각도 5의 페이로드를 매핑하는 방법

loadObservations() { 
    this.http.get(`${BASE_URL}${1000}`) 
    .map(res => res.json()) 
    .map(payload => ({ type: 'ADD_OBSERVATIONS', payload })) 
    .subscribe(action => this.store.dispatch(action)); 
} 
+4

HttpClient observables가 기본적으로 json 본문을 방출하기 때문에'.map (res => res.json())'이 더 이상 필요 없다는 점을 제외하면 같은 방식입니다. 이것은 문서화되어있다. 설명서를 읽지 않는 이유는 무엇입니까? https://angular.io/guide/http, https://angular.io/guide/http#typechecking-the-response –

답변

0

.map 실제로 RxJS (내부 각도에서 사용하는 반응성 스타일의 프로그래밍을위한 라이브러리)에서 오는 Observable의 방법이다.

HttpClientget 메서드는 Observable을 반환하기 때문에 map 연산자를 적용 할 수 있습니다. HttpClient (지원되지 않는 HttpHttpModule)은 JSON으로 응답을 추출하므로 게시 한 스 니펫에서 변경된 사항은 res => res.json()을 제거해야한다는 것입니다. 받은 개체가 JSON 문자열에서 deserialize되므로 호출하려고하는 사용자 지정 함수 json()이 포함되어 있지 않으므로 중단됩니다.

관련 문제