[英]Combine two observables then transform the result
我有一個使用 Angular Http 調用的 REST 端點。 我需要鏈接兩個調用,然后使用每個調用的結果創建一個要返回的對象。
偽代碼:
我認為這會做到,但我收到一個錯誤;
addClient(clientData) {
let clientUid;
return this.http.post(`/clients`, clientData)
.flatMap((newClient:any) => {
clientUid = newClient.name;
return this.http.patch(`/spec/${clientUid}`, clientData)
.flatMap((updatedClient:any)=> {
return {
uid: clientUid,
...updatedClient,
}
})
});
}
//consume
this.clientService.addClient(clientData)
.subscribe((response:any) =>{ }
類型錯誤:您提供了一個預期流的無效對象。 您可以提供 Observable、Promise、Array 或 Iterable。
我怎樣才能:
.flatMap
函數期望您返回一個Observable
,但您實際上返回的是一個對象。
如果要轉換值,則應使用.map
關於使用clientUuid
,看到您的map
是從原始flatMap
調用的,您應該能夠使用newClient.name
您的代碼中有一些錯誤+可以改進。
flatmap
調用。flatmap
。 你需要的是map
我為您的問題創建了一個演示 - https://stackblitz.com/edit/so-rxjs 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.