Сопоставить данные ответов HttpClient при возврате HttpResponse - PullRequest
0 голосов
/ 30 марта 2020

В моем сервисе я всегда конвертирую JSON в фактический тип класса, используя rx js, например, так.

get(id: UUID): Observable<OrderDTO> {
    return this.http.get<OrderDTO>(`${this.baseUrl}/${id}`)
        .pipe(
            map(x => OrderDTO.fromJson(x))
        );
}

Теперь у меня есть случай, когда я хочу это сделать, но также получаю заголовки HTTP также. Поэтому я добавил бы {observe: 'response'} к вызову get и затем возвратил бы Observable<HttpResponse<OrderDTO>> ... за исключением того, что я не могу понять, как все еще делать там map. Может кто-нибудь помочь мне с этим синтаксисом, пожалуйста?

1 Ответ

0 голосов
/ 30 марта 2020

Я думаю, что вы получите возвращенный объект HttpResponse из вызова http, вы можете отобразить ваши свойства свойства HttpResponse и тело ответа и вернуть массив, например

this.http.get<OrderDTO>(`${this.baseUrl}/${id}`)
        .pipe(
            map(resp => 
                [resp.headers,resp.body])
        ).subscribe(([header,body])=>....);
...