离子中的http调用中的处理错误2
问题描述:
在我的Ionic2应用程序中,我有一个处理所有http请求的服务。 当http调用发生任何错误时,我有一个提醒控制器。在按钮上单击此警报时,我想再次运行该呼叫。我现在能够做到。问题是响应没有解析到从哪个函数被调用的页面。离子中的http调用中的处理错误2
代码服务:
loadCity(){
return new Promise(resolve => {
this.http.get(url).map(res=>res.json())
.subscribe(data => {resolve(data)},
err => { this.showAlert(err); }
});
}
showAlert(err: any){
// code for alert controller, I am only writing handler of alert
//controller refresh button
handler => {this.loadCity();}
}
守则CityPage
showCity(){
this.cityService.loadCity()
.then(data => {//process data});
}
处理程序再次调用功能,但这个时候的承诺下不了决心CityPage showCity()函数。
答
当http请求发生错误时,会调用错误回调函数,但您既不解决也不拒绝承诺。
你可以做这样的事情
loadCity(){
return new Promise((resolve, reject) => {
this.http.get(url).map(res=>res.json())
.subscribe(
data => {resolve(data)},
err => {
this.showAlert(err);
reject(err);
}
});
}
}
,并在呼叫者
showCity(){
this.cityService.loadCity()
.then(data => {
//process data
})
.catch(error => {
//some error here
})
}
你可以看到在docs更好的例子。
谢谢,它的工作。我的坏,我是新的&我编码不知道基本知识。 –