我通常不會在服務訂閱,但在分量。但這是我在驗證服務中的代碼。
getUser(userId: string) {
const token = localStorage.getItem('token');
const headers = new Headers({'Authorization': token});
return this._http.get('http://localhost:3000/user/' + userId, {headers: headers})
.map(response => {
const data = response.json().obj;
let user = new User (data.email, data.password,
data.firstName, data.lastName,
data.messages);
return user;
})
//.catch(error => Observable.throw(error.json()));
.catch((err) => this.handleError(err));
}
private handleError(error: Response) {
if(error.status == 403){
console.error(error + 'Session over. Please log in to continue.');
}
console.error(error + 'Session over. Please log in to continue.');
this._router.navigate(['/']);
this.logout();
return Observable.throw(error.json().error || "Server error");
}
在我的組件,它應該是:
this.http.getUser(string: string)
.subscribe(
result => { this.result = result;
},
error => { console.log('raw error =>', err);
});
讓我知道,如果我能更多的助手。
這顯然不是問題的答案,而僅僅是某人做錯事的答案。我有相同的情況和你的答案(標記爲已解決?)沒有幫助,對不起:( – ramden