如何在 Rxjs 中映射一个深度嵌套的对象
How to map a deeply nested object in Rxjs
我开始使用 angular2 中的 rxjs。在将 http 响应映射到 observable 时,我看到的许多示例都使用了简单的对象。
this.http.get('/app/shared/data/raw-tasks.json')
.map(response => response.json())
.map(stream => stream.map(res => new TaskModel(res.name, res.deadline, res.timeRequired)))
但我如何映射更复杂的响应,如嵌套对象和嵌套数组?
从响应中获得 json 后,您可以随心所欲地使用它。只需添加另一个地图函数并在其他地方解析它(确保你 return 解析值):
this.http.get('/app/shared/data/raw-tasks.json')
.map(response => response.json())
.map(stream => complicatedParser(stream))
// somewhere in your code...
complicatedPatser(stream) {
return stream
.map(x => x)
.filter(x => true)
.reduce(....)
}
Observables 不关心它们发出什么,所以简单的字符串或复杂的嵌套对象之间几乎没有区别。如果你知道如何处理基本类型,object
and/or array
响应,你几乎无所不知 (;
我开始使用 angular2 中的 rxjs。在将 http 响应映射到 observable 时,我看到的许多示例都使用了简单的对象。
this.http.get('/app/shared/data/raw-tasks.json')
.map(response => response.json())
.map(stream => stream.map(res => new TaskModel(res.name, res.deadline, res.timeRequired)))
但我如何映射更复杂的响应,如嵌套对象和嵌套数组?
从响应中获得 json 后,您可以随心所欲地使用它。只需添加另一个地图函数并在其他地方解析它(确保你 return 解析值):
this.http.get('/app/shared/data/raw-tasks.json')
.map(response => response.json())
.map(stream => complicatedParser(stream))
// somewhere in your code...
complicatedPatser(stream) {
return stream
.map(x => x)
.filter(x => true)
.reduce(....)
}
Observables 不关心它们发出什么,所以简单的字符串或复杂的嵌套对象之间几乎没有区别。如果你知道如何处理基本类型,object
and/or array
响应,你几乎无所不知 (;