在这种情况下你会如何发现错误:
getStuff(): Observable<Stuff[]> {
return this.http.get(url)
.map((res: Response) => {
return res.json()
.map(item => {
return {
id: item.id
name: item.code
};
});
});
}
我试图放.catch()
但是说返回类型与Supplied parameters do not match any signature of call target.
getStuff(): Observable<Stuff[]> {
return this.http.get(url)
.map((res: Response) => {
return res.json()
.map(item => {
return {
id: item.id
name: item.code
};
});
})
.catch();
}
.catch((err) => console.error(err));
获得
Argument of type '(err: any) => void' is not assignable to parameter of type '(err: any, caught: Observable<any>) => ObservableInput<{}>'.
Type 'void' is not assignable to type 'ObservableInput<{}>'.
答案 0 :(得分:1)
您可以使用Observable.throw
function handleError(error: any) {
let errorMsg = error.message || `Yikes! There was was a problem `;
console.error(errorMsg);
// throw an application level error
return Observable.throw(errorMsg);
}
并使用
.catch(handleError);