angular - 更新后如何使用管道编写 rxjs 捕获和映射函数
问题描述
由于 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);
}
解决方案
欢迎来到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);
})
);
}
推荐阅读
- cxjs - 我想捆绑字体真棒css/icons cx js APP
- regex - 正则表达式将标签之间的所有内容与文本匹配
- python - 如何在python中检查互联网速度?
- javascript - 从基于类型脚本的 KOA 服务器提供前端 Web 应用程序无法解析 CSS 和 JS 文件
- shell - Shell 脚本比较 .conf 值
- sql - 获取带空格的数据库名称
- python - 在 python 中构建回归时,如何为最近的数据分配更大的权重
- java - 决策树分类器在分类实例时存在问题
- java - 不使用 UsernamePasswordAuthenticationToken 的 Spring Security JWT 验证
- java - 使用 Twitter 为 Oauth 创建签名