簡體   English   中英

獲取一個 Observable<response> 與 angular 9 / 10</response>

[英]Get an Observable<Response> with angular 9 / 10

我正在嘗試使用ngx-filesaver在 angular 應用程序中下載文件。 我正在嘗試使用該頁面上自定義 HTTP 類型下的示例,但無論我做什么,我都無法讓httpClient返回Observable<Response>

現在我有這個:

    const key = this.selected.Key.slice(7).replace(/Json/, '');
    let res = this.myService.getFile(key, 'blob');
    return (res);

[...]

  public getFile(key : string, responseType)
  {
    var headers = this.mkHeaders();
    return (this.httpClient.get(myLink + key, {headers, responseType, observe: responseType == 'blob' ? 'response' : null}).pipe(retry(3), catchError(this.handleError)));
  }

這將返回一個Observable<HttpResponse<ArrayBuffer>> 關於我如何做到這一點的任何提示?

嘗試

this._httpClient.get(myLink + key, {
    observe: 'response',
    responseType: 'blob'
}

你看過這個例子嗎?

這是我最終做的,效果很好:

      this.myService.getFile(key, "text").pipe(takeUntil(this.destroy$)).subscribe((data: any) =>
      {
        var content = new Blob([data], { type: 'text/plain;charset=utf-8' });
        this._FileSaverService.save(content, key);
      });

只需將文件作為文本獲取,然后自己制作 Blob 即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM