美文网首页
08RxJS错误处理操作符

08RxJS错误处理操作符

作者: learninginto | 来源:发表于2021-01-08 09:55 被阅读0次
  • 默认的error
of(1, 2, 3, 4, 5).pipe(
  map(
    n => {
      if (n === 4) {
        throw new Error('four err')
      }
      return n;
    }
  )
).subscribe(
  x => console.log(x),
  error => console.error('err', error),
  () => console.log('complete')
)
//1
//2
//3
//four err
catchError

无视错误,返回新的Observable

of(1, 2, 3, 4, 5).pipe(
  map(
    n => {
      if (n === 4) {
        throw new Error('four err')
      }
      return n;
    } 
  ),
  catchError(err => of('捕获错误')),
).subscribe(
  x => console.log(x),
  error => console.error('err', error),
  () => console.log('complete')
)
//1
//2
//3
//捕获错误
//complete
  • 重试错误

捕获到错误时,重试时要加take,否则会报错Maximum call stack size exceeded

of(1, 2, 3, 4, 5).pipe(
  map(
    n => {
      if (n === 4) {
        throw new Error('four err')
      }
      return n;
    }
  ),
  catchError((err, caught) => caught),
  take(30)
).subscribe(
  x => console.log(x),
  error => console.error('err', error),
  () => console.log('complete')
)
retry

发生错误后重试指定次数

of(1, 2, 3, 4, 5).pipe(
  map(
    n => {
      if (n === 4) {
        throw new Error('four err')
      }
      return n;
    }
  ),
  retry(2)
).subscribe(
  x => console.log(x),
  error => console.error('err', error),
  () => console.log('complete')
)
retryWhen

发生错误后,自定义重试策略,参数是个回调函数,返回Observalbe

const source = interval(1000)
const example = source.pipe(
  map(val => {
    if (val > 5) {
    //错误由retryWhen接收
      throw val;
    }
    return val;
  }),
  retryWhen(errors =>
    errors.pipe(
      tap(val => console.log(`${val}太大了`)),
      delay(3000)
    )
  )
)
const subscribe = example.subscribe(
  val => console.log(val),
  error => console.error('err ', error)
)
// 1 2 3 4 5 6太大了(延迟3秒后重试)

相关文章

  • 08RxJS错误处理操作符

    默认的error catchError 无视错误,返回新的Observable 重试错误 捕获到错误时,重试时要加...

  • Combine - Operator(操作符)(二)

    线程 操作符|编码 操作符 |合并 操作符|错误处理 操作符|处理多个订阅者 操作符 线程 操作符 receive...

  • RxJava2操作符

    操作符分类 操作符分类有十三种: 变换操作符 过滤操作符列表 组合操作符 错误处理操作符 辅助操作符 条件操作符 ...

  • rxjava2 学习笔记

    特点 链式调用 线程切换 操作符 创建操作符 转换操作符 过滤操作符 组合操作符 错误处理操作符 辅助性操作符 条...

  • Swift - RxSwift的使用详解15(错误处理)

    十五、错误处理操作(Error Handling Operators) 错误处理操作符可以用来帮助我们对 Obse...

  • RxJava(七)--错误处理操作符

    错误处理操作符 catch、retry 实例与功能介绍 1. catch操作符 代码实例 结果 功能:catch操...

  • RxJava 操作符(创建、变换)

    概述 RxJava 操作符的类型有多种,如:创建、变换、过滤、组合、错误处理、辅助、条件和布尔操作符等,还有许多延...

  • RxJava基础五-错误处理操作符

    此篇内容均是来自书籍《RxJava响应式编程》李衍顺 著 3.5 错误处理操作符 RxJava对错误的处理很方便,...

  • RxJava 错误处理操作符

    ReactiveX 系列文章目录 onErrorResumeNext 在源 Observable 遇到错误时,立即...

  • RxJava操作符-错误处理

    onErrorReturn: 默认情况下,Observer订阅的Observable如果发生异常或错误,那么Obs...

网友评论

      本文标题:08RxJS错误处理操作符

      本文链接:https://www.haomeiwen.com/subject/iahtaktx.html