我使用foursquare api来搜索搜索地点的经度和纬度坐标,功能如下:
getCoordinates(params) {
this.http.get(URL+params)
.map(res => res.json())
.subscribe(
data => this.coordinates = data,
err => this.logError(err)
);
// return coordinates;
}
我试图弄清楚如何在成功或错误的情况下执行特定任务,所以如果是成功的话,我想return coordinates
如果没有向控制台输出错误,而不是{{1} }}。我认为我或多或少地将错误降低了,但无法确定成功行动(此时已将其评论为成功和错误情况下调用)
编辑:了解此问题将来会如何出现,检查return coordinates
成功或失败的逻辑是什么?
答案 0 :(得分:4)
实际上,subscribe方法允许注册成功和制作的回调。也许箭头功能会让你有点打扰:
this.http.get(...)
.map(res => res.json())
.subscribe(
data => {
// Processing for successfull response
},
error => {
// Processing for failures
}
);
您只能返回observable(例如来自服务)但不能返回结果,因为HTTP请求是异步的。然后,您可以在组件中订阅它,例如,并设置要在视图中显示的组件属性。
希望它对你有所帮助。 亨利
答案 1 :(得分:0)
您可以使用http.get()
函数链接then
,您可以在其中放置成功和错误回调:
this.http.get(URL+params).then(function(data){
// success
}, function(data){
// error
});