簡體   English   中英

Angular - 將對 function 的響應從 @angular/http 映射到 @angular/common/http

[英]Angular - Mapping response to a function from @angular/http to @angular/common/http

我正在從“@angular/http”升級到“@angular/common/http”。 我有以下 TS 代碼片段,它在舊的 Http 模塊中工作,但在新的 HttpClient 模塊中不再工作:

    let itemsMapped = this.http.get(this.baseUrl).map(response => { 
        return response.json().itemsList.map(toItems);
    })

其中 itemsMapped 是將返回的值,itemsList 是 promise,toItems 是響應值映射到的 function。 升級到 HttpClient 后,我收到錯誤消息“屬性‘json’在類型‘對象’上不存在。” 我讀到新的 HttpClient 返回一個 object(在我的例子中是“響應”)。 我如何在新的 HttpClient 中使用它到 map 它的值到 function “toItems”,就像以前一樣? 先感謝您!

響應已經是一個 Object,您不必從 JSON 進行轉換。您可以使用以下語法:

this.http
  .get(this.baseURL)
  .pipe(
    map(res=>res=toItems(res),
  ).subscribe(
    res=>itemsMapped=res
  )

假設您的 toItems() 只是將其映射到響應的一部分,您可以使用以下方法跳過 toItems() :

this.http
  .get(this.baseURL)
  .pipe(
    map(res=>res=res['key_name_of_items'],
  ).subscribe(
    res=>itemsMapped=res
  )

stackblitz 中的示例: https://stackblitz.com/edit/angular-ivy-p4i2rr?file=src/app/app.component.ts

暫無
暫無

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

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