RxJS之catchError
Catches errors on the observable to be handled by returning a new observable or throwing an error.
返回新的可观察对象
import { Component, OnInit } from '@angular/core';
import { of } from 'rxjs/observable/of';
import { map, catchError, retry } from 'rxjs/operators'; @Component({
selector: 'app-error',
templateUrl: './error.component.html',
styleUrls: ['./error.component.css']
})
export class ErrorComponent implements OnInit { constructor() { } ngOnInit() {
of('Leo', 'Raph', 'Mikey', 'Don').pipe(
map(turtle => {
if (turtle === 'Mikey') {
throw new Error('出错了');
}
return turtle;
}),
catchError(err => of('Aioria', 'Mu'))
).subscribe(turtle => {
console.log(turtle);
});
} }
继续抛出异常
import { Component, OnInit } from '@angular/core';
import { of } from 'rxjs/observable/of';
import { map, catchError, retry } from 'rxjs/operators'; @Component({
selector: 'app-error',
templateUrl: './error.component.html',
styleUrls: ['./error.component.css']
})
export class ErrorComponent implements OnInit { constructor() { } ngOnInit() {
of('Leo', 'Raph', 'Mikey', 'Don').pipe(
map(turtle => {
if (turtle === 'Mikey') {
throw new Error('出错了');
}
return turtle;
}),
catchError(err => {
throw new Error('继续抛出异常');
})
).subscribe(turtle => {
console.log(turtle);
});
} }
重新尝试
import { Component, OnInit } from '@angular/core';
import { of } from 'rxjs/observable/of';
import { map, catchError, retry } from 'rxjs/operators'; @Component({
selector: 'app-error',
templateUrl: './error.component.html',
styleUrls: ['./error.component.css']
})
export class ErrorComponent implements OnInit { constructor() { } ngOnInit() {
of('Leo', 'Raph', 'Mikey', 'Don').pipe(
map(turtle => {
if (turtle === 'Mikey') {
throw new Error('出错了');
}
return turtle;
}),
retry(2),
catchError(err => of('Aioria', 'Mu'))
).subscribe(turtle => {
console.log(turtle);
});
} }
RxJS之catchError的更多相关文章
- Angular记录(9)
文档资料 箭头函数--MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Arrow_fun ...
- Angular6封装http请求
最近抽空学习了一下Angular6,之前主要使用的是vue,所以免不了的也想对Angular6提供的工具进行一些封装,今天主要就跟大家讲一下这个http模块. 之前使用的ajax库是axios,可以设 ...
- 【CuteJavaScript】Angular6入门项目(4.改造组件和添加HTTP服务)
本文目录 一.项目起步 二.编写路由组件 三.编写页面组件 1.编写单一组件 2.模拟数据 3.编写主从组件 四.编写服务 1.为什么需要服务 2.编写服务 五.引入RxJS 1.关于RxJS 2.引 ...
- Angular 从入坑到挖坑 - HTTP 请求概览
一.Overview angular 入坑记录的笔记第四篇,介绍在 angular 中如何通过 HttpClient 类发起 http 请求,从而完成与后端的数据交互. 对应官方文档地址: Angul ...
- angular2 学习笔记 ( rxjs 流 )
RxJS 博大精深,看了好几篇文章都没有明白. 范围牵扯到了函数响应式开发去了... 我对函数式一知半解, 响应式更是第一次听到... 唉...不过日子还是得过...混着过先呗 我目前所理解的很浅, ...
- RxJS 实现摩斯密码(Morse) 【内附脑图】
参加 2018 ngChina 开发者大会,特别喜欢 Michael Hladky 奥地利帅哥的 RxJS 分享,现在拿出来好好学习工作坊的内容(工作坊Demo地址),结合这个示例,做了一个改进版本, ...
- rxjs 常用的管道操作符
操作符文档 api 列表 do -> tap catch -> catchError switch -> switchAll finally -> finalize map s ...
- RxJS v6 学习指南
为什么要使用 RxJS RxJS 是一套处理异步编程的 API,那么我将从异步讲起. 前端编程中的异步有:事件(event).AJAX.动画(animation).定时器(timer). 异步常见的问 ...
- Angular快速学习笔记(4) -- Observable与RxJS
介绍RxJS前,先介绍Observable 可观察对象(Observable) 可观察对象支持在应用中的发布者和订阅者之间传递消息. 可观察对象可以发送多个任意类型的值 -- 字面量.消息.事件. 基 ...
随机推荐
- Spring和SpringMVC的常用注解
Spring的部分: 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包). <context:component-scan base-package=" ...
- js乱码问题解决
乱码有可能出现在下面两种情况 1.高级浏览器直接访问js路径 2.jsp引用js 针对上述两种情况的解决方式: 1.查看设置浏览器的字符集 2.查看web服务器的字符集,比如Tomcat 配置UTF- ...
- Cmake 编译opengl开源库glfw工程及使用
使用的是cmake gui进行编译的,路径输入好之后,点configure配置vs版本,这里是vs2013版本,然后如果画面出现红色的 需要再点击一下 Generate 然后直接点open proje ...
- 【367】通过 python 实现 SVM 硬边界 算法
参考: 支持向量机整理 SVM 硬边界的结果如下: $$min \quad \frac{1}{2} \sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_jy_iy_j \v ...
- 【358】GitHub 上面文件夹下载方法
参考:https://www.bilibili.com/read/cv210500/ 参考:https://www.jianshu.com/p/743ecc20ffb2 软件下载:Downloads ...
- Notepad++好用的功能和插件
Notepad++是一款Windows环境下免费开源的代码编辑器,支持Python,shell,Java等主流语言编写.本文主要描述Notepad++一些好用但是容易忽视的功能. 1.根据文件内容查找 ...
- 3.Java的基本数据类型.md
Java支持的类型分为两类: •基本类型(Primitive Type):boolean和数值类型 ◦整型:byte.short.int.long.char ◦浮点:float.double •nul ...
- RMI 、RPC和SOAP
- 编程四剑客sed-2019.2.20
sed [-Options] [‘Commands’] filename; sed工具默认处理文本,文本内容输出屏幕已经修改,但是文件内容其实没有修改,需要加-i参数即对文件彻底修 ...
- https://www.oschina.net/project/zhlist/326/scripting 开源
1https://www.oschina.net/project/zhlist/326/scripting