Angular 如何在http post中定义多个observision?

问题描述 投票:0回答:1

早上好,在一个Http post call中,我需要读取答案中的头和事件,以便在调用过程中管理一个进展.为了管理进展,我设置观察:'事件',它工作得很好.我需要设置观察。'response'来读取应答的头部.我该怎么做呢?

 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)
    )
angular http post
1个回答
0
投票

你不需要额外观察响应.如果你观察 "事件",你可以达到响应,因为响应是你应该收到的事件的一部分。

如果你想对响应做一些事情,添加rxjs。tap 操作符,并检查该事件是否为HTTP响应。enum 角度给 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
    }
  })
)
© www.soinside.com 2019 - 2024. All rights reserved.