由于rxjs已更新,所以我的代码不再起作用。我意识到我需要使用管道而不是catch catchError,但是仍然缺少一些东西。请参见下面的代码。感谢您的帮助。
public getAllTodos(): Observable<Todo[]> {
return this.http.get(API_URL + '/todos')
.pipe(
map(response => {
const todos = response.json();
return todos.map((todo) => new Todo(todo));
}),
catchError(err => {
this.handleError(err);
})
);
}
private handleError (error: Response | any) {
console.error('ApiService::handleError', error);
return Observable.throw(error);
}
答案 0 :(得分:1)
欢迎来到stackoverflow。
使用更新的HttpClient模块,我们不再需要使用.json语法。像这样:
public getAllTodos(): Observable<Todo[]> {
return this.http.get<Todo[]>(API_URL + '/todos')
.pipe(
catchError(err => {
this.handleError(err);
});
}
或者如果您仍然需要映射到实际对象:
public getAllTodos(): Observable<Todo[]> {
return this.http.get<Todo[]>(API_URL + '/todos')
.pipe(
map(todos => todos.map((todo) => new Todo(todo))),
catchError(err => {
this.handleError(err);
})
);
}