[英]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.