Angular Как определить множественное наблюдение в http-сообщении - PullRequest
0 голосов
/ 05 мая 2020

Доброе утро, в пост-вызове Http мне нужно прочитать в ответе и заголовок, и события, чтобы управлять прогрессом во время разговора. Чтобы управлять прогрессом, я установил наблюдение: «события», и он отлично работает. Мне нужно установить также наблюдение: «ответ», чтобы прочитать заголовок ответа. как я могу это сделать?

 return this.http.post(ip + this.apiDownFile,JSON.stringify(paramObj),{
        headers: {
            Authorization: `Bearer ${token}`,
            'Content-Type': 'application/json'
        },
        responseType: 'blob' as 'json',
        reportProgress: true,
        observe: 'events'
    }).pipe(
        map(risposta=>risposta)
    )

1 Ответ

0 голосов
/ 05 мая 2020

Ответ дополнительно наблюдать не нужно. Вы можете получить ответ, если наблюдаете «события», поскольку ответ является частью событий, которые вы должны получать.

Если вы хотите что-то сделать с ответом, добавьте оператор rx js tap и там проверьте, является ли событие HTTP-ответом. Вы можете сделать это, предоставив enum, который angular дает - HttpEventType.

импорт:

import { HttpEventType } from "@angular/common/http";

Код:

return this.http.post(ip + this.apiDownFile,JSON.stringify(paramObj),{
  headers: {
      Authorization: `Bearer ${token}`,
      'Content-Type': 'application/json'
  },
  responseType: 'blob' as 'json',
  reportProgress: true,
  observe: 'events'
}).pipe(
  map(risposta=>risposta),
  tap(risposta => {
    if(risposta === HttpEventType.Response) {
      // do something
    }
  })
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...