I have a service which uses @angular/http
to load data from an API.
I want to create a projection of the retrieved data for my Components
using this data.
Therefore I wrote the following code:
getById(id: string) {
return this.http
.get(`https://my-api.io/${id}`)
.map(response => response.json())
.map(contracts =>
contracts.map(contract => # <- Nested map
new Contract(
contract['id'],
contract['description']
)
)
);
}
In the 6th line I have a nested map
-Statement reducing the readability of my code.
Question
Can I do better? Is there an operator in RxJS which I can use instead of creating this kind of nesting?
Thanks in advance!
map
is ofObservable
and the inside is ofArray
type. You can consider separate it out to a function for readability though. – Roancontracts
withconcatAll
then you can apply.map
for eachcontract
, andcombineAll
Observable sequence. Note: you need return Observable, from.map
, in order to usecombineAll
- jsbin.com/hududiq/edit?js,console – Motorcycle