博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RxSwift笔记六错误处理
阅读量:5771 次
发布时间:2019-06-18

本文共 1729 字,大约阅读时间需要 5 分钟。

简介

git地址: https://github.com/ReactiveX/RxSwift    参考资料:http://t.swift.gg/d/2-rxswift        ReactiveX是通过可观察的流实现异步编程的一种API,它结合了观察者模式、迭代器模式和函数式编程的精华,RxSwift 是 ReactiveX 编程思想的一种实现。复制代码

retry

订阅失败了,再尝试重新订阅.比如网络请求失败,可以进行重新连接。

let disposeBag = DisposeBag()var count = 1    let retrySequence = Observable
.create { (observer) -> Disposable in observer.onNext("?") observer.onNext("?") if count == 1 { observer.onError(TestError.test) print("Error encountered") count += 1 } observer.onNext("?") observer.onNext("?") return Disposables.create()} retrySequence.retry().subscribe(onNext: {
print($0)}).disposed(by: disposeBag)结果:??Error encountered????复制代码

retry(_:)

跟retry相同,多了一个重试次数的参数

catchError

遇到错误时,返回一个新序列.

let disposeBag = DisposeBag()    let sequenceThatFails = PublishSubject
()let recoverySequence = PublishSubject
() sequenceThatFails.catchError { print("Error:", $0) return recoverySequence }.subscribe { print($0) }.disposed(by: disposeBag) sequenceThatFails.onNext("?")sequenceThatFails.onNext("?")sequenceThatFails.onNext("?")sequenceThatFails.onError(TestError.test) recoverySequence.onNext("?")结果:next(?)next(?)next(?)Error: testnext(?)复制代码

catchErrorJustReturn

遇到错误,就返回一个值.

let sequenceThatFails = PublishSubject
()_ = sequenceThatFails .catchErrorJustReturn(100) .subscribe { print($0)}sequenceThatFails.on(.Next(1))sequenceThatFails.on(.Next(2))sequenceThatFails.on(.Next(3))sequenceThatFails.on(.Error(NSError(domain: "Test", code: 0, userInfo: nil)))sequenceThatFails.on(.Next(4))复制代码

如有侵权,请告知删除.

转载于:https://juejin.im/post/5ab1ead4f265da23870eb642

你可能感兴趣的文章
Facebook Sonar:一款可视化及交互式移动应用调试工具
查看>>
基于干净语言和好奇心的敏捷指导
查看>>
Node.js 2017企业用户调查结果发布
查看>>
JavaScript到底是面向对象还是基于对象?
查看>>
小米大数据:借助Apache Kylin打造高效、易用的一站式OLAP解决方案
查看>>
“软”苹果水逆的一周:杂志服务崩溃,新机型遭泄露,芯片首架离职
查看>>
JAVA的优势就是劣势啊!
查看>>
IEEE802.11数据帧在Linux上的抓取
查看>>
数据加密和CA的创建
查看>>
使用if语句编写Shell脚本
查看>>
ELK实战之logstash部署及基本语法
查看>>
帧中继环境下ospf的使用(点到点模式)
查看>>
BeanShell变量和方法的作用域
查看>>
LINUX下防恶意扫描软件PortSentry
查看>>
由数据库对sql的执行说JDBC的Statement和PreparedStatement
查看>>
如何使用SMTPDiag 工具
查看>>
springmvc+swagger2
查看>>
软件评测-信息安全-应用安全-资源控制-用户登录限制(上)
查看>>
cacti集成
查看>>
linux后台运行&符号、nohup命令、输出重定向等使用方法
查看>>