有時您在不使用箭頭功能的情況下致電catch時,如下所示
getUserList() {
return this.http.get(this.constURL + '/loans/all', this.headerOptions)
.catch(this.handleError);
}
handleError(error: Response) {
if (error.status == 500) {
this.router.navigate(['/login']);
} else {
return Observable.throw(error);
}
}
然後它給
錯誤類型錯誤的錯誤:無法讀取屬性「導航」的未定義沒有得到這個
由於功能的HandleError你accessible..if安慰this.router那麼這個對象不是你會得到不確定的.. 所以這個對象沒有工作,沒有得到路由器的所有可用的方法
所以,你必須在這裏使用箭頭功能類似下面
getUserList() {
return this.http.get(this.constURL + '/loans/all', this.headerOptions)
.catch(error => {
return this.handleError(error);
});
}
handleError(error: Response) {
if (error.status == 500) {
this.router.navigate(['/login']);
} else {
return Observable.throw(error);
}
}
此外,如果你並沒有提及handlerError函數返回然後再重新拋出錯誤,如
參數類型的「(錯誤:任意)=>無效」是不能分配給類型的參數
所以它必須爲handlerError函數鍵入return。
入住詳情here。他已經解釋了很好的代碼以及所有可能的錯誤和解決方案。爲我工作
並獲得消息? –
需要一個'catch'。更新了答案:) – Nehal
錯誤對象是否顯示在控制檯中?如果確實如此,那麼您可以簡單地在胖箭頭內部執行err._body以訪問該消息。 – Nehal