在我的Angular 2应用程序中,我试图捕获从服务中抛出的组件级别的错误。
例如。
class ServiceA
{
getCustomer()
{
this.http.get('/someURL').subscribe(
(data) => {
return data;
},
(err) => {
throw err
}
)
}
class ComponentA
{
constructor(
private serviceA : ServiceA
){}
ngOnInit()
{
try
{
let var1;
var1 = this.serviceA.getCustomer()
}
catch(err)
{
//How do I trigger this catch to work ?
console.log(err);
}
}
}
我的代码上面有什么问题?为什么不起作用?
答案 0 :(得分:2)
您正在订阅服务本身而不是订阅组件。 getCustomer()
也没有返回任何内容。
只返回getCustomer()
的观察点。映射响应值。
getCustomer()
{
return this.http.get('/someURL').map(
(data) => {
return data.json();//if response content type is json
},
(err) => {
throw err
}
)
}
订阅组件。
this.serviceA.getCustomer().subscribe(data=>{
var1=data;
},err=>{
console.log(err);//get the error in error handler
});