Http 如何使用observable.map和.subscribe处理数据
我正在从API中检索一些数据:Http 如何使用observable.map和.subscribe处理数据,http,angular,reactive-programming,rxjs,Http,Angular,Reactive Programming,Rxjs,我正在从API中检索一些数据: [ { "id": 1, "lat": 50.607084, "lng": 3.043099 }, { "id": 2, "lat": 50.607084, "lng": 3.043099 }, ] 我只想用反应式编程来处理数据,这样在我的请求中,就可以创建谷歌地图标记了 this.http.get('http://api/getData') .map(res => {
[
{
"id": 1,
"lat": 50.607084,
"lng": 3.043099
},
{
"id": 2,
"lat": 50.607084,
"lng": 3.043099
},
]
我只想用反应式编程来处理数据,这样在我的请求中,就可以创建谷歌地图标记了
this.http.get('http://api/getData')
.map(res => {
return res.json()
})
.subscribe(
data => {
console.log(data);
});
当这样做时,我得到了很多对象,我无法找到一种方法来记录或隔离纬度(我得到“未知”)
我希望能够在“.map”(可观察?)中放置一个函数,该函数将获得所有变量,
并创建标记选项,我将其放入数组中
let markerOptions: GoogleMapsMarkerOptions = {
position: latlng,
title: 'id'
};
从我在google上看到的内容来看,大多数人更喜欢将对象放在一个私有变量中,我假设在另一个函数中处理它 您需要做的是将从服务器检索到的数组映射到GoogleMapsMarketropions列表。所以,(我不知道GoogleMapsMarketropions的构造器)比如:
this.http.get('http://api/getData')
.map(res => {
return res.json().map(x => {
return new GoogleMapsMarkerOptions({
title: x.it,
position: new GoogleMapsLatLng(x.lat, x.lng)
});
});
})
.subscribe(
data => {
console.log(data);
});
第二个映射是标准的javascript方法(而不是rxjs)。如果需要支持旧浏览器,可以使用lodash或下划线