Как бы вы поймали ошибку
Как бы вы поймали ошибку в этом случае:
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<{}>'.
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);