关于RxSwift MVVM flatMapLatest 点击事件网络请求失败整个序列结束
例子
先上代码吧:
self.signedIn = input.loginTaps.withLatestFrom(usernameAndPassword).flatMapLatest { (username, password) in
return EmeAPI.sharedInstance.request(UserApi.login(loginName: username, password: password)).observeOn(MainScheduler.instance).mapRegMessageObj(User)}.shareReplay(1)/*这样就不会出现『多次订阅导致重复地网络请求』的情况了。*/解释下:
我的逻辑是 登陆功能, 先判断textfield 录入的是否合法,然后 在发起网络请求
EmeAPI.sharedInstance.request是我封装的网络请求
mapRegMessageObj(User) 这句话是解析实例化为user model
self.signedIn 是用于在controller 中使用的,我想实现是 如果成功就可以直接使用user对象,否则会走catcherror 中,然后可以统一处理错误逻辑了
现在存在问题:
如果在 flatMapLatest 中的网络请求发生错误error,然后 按钮就不能点击了, 现在主要就是这块的问题,我估计是flatMapLatest 如果发生错误它就会主动发送complete 然后 在点击按钮 就不会再进行网络请求了,现在求大神帮忙解析下吧
swift3.0 之前
extension ObservableType {func flatMapLatest<O: ObservableConvertibleType>(selector: (Self.E) throws -> O,onError: (ErrorType throws -> Void)) -> RxSwift.Observable<O.E> {return flatMapLatest({ x intry selector(x).asObservable().catchError { error intry onError(error)return Observable.never()}})}
}
swift3.0之后
extension ObservableType {public func flatMapLatest<O: ObservableConvertibleType>(selector: @escaping (Self.E) throws -> O,onError: (@escaping (Swift.Error) throws ->())) -> RxSwift.Observable<O.E> {return flatMapLatest({ x intry selector(x).asObservable().catchError({ error intry onError(error)return Observable.never()})})}}
关于RxSwift MVVM flatMapLatest 点击事件网络请求失败整个序列结束相关推荐
- Hikvison对接iSecure Center时获取Appkey和Secert、不显示API网关、预览时提示网络请求失败
场景 SpringBoot+Vue+iSecure Center(海康综合安防管理平台)实现视频预览: SpringBoot+Vue+iSecure Center(海康综合安防管理平台)实现视频预览_ ...
- 微信小程序常见网络请求失败问题总结及解决方案
微信小程序常见网络请求失败问题总结及解决方案 微信开发者工具中未勾选不校验合法域名设置 未勾选这个设置在任何环境下发送http网络请求会失败 发送的是https请求,但网络请求依旧是失败 需要到官方的 ...
- RTSP安防网络摄像头/海康大华硬盘录像机/NVR网页无插件低延时播放流媒体服务器EasyNVR页面显示网络请求失败问题
进入移动互联网时代以来,企业微信公众号已成为除官网以外非常重要的宣传渠道,当3.2亿直播用户与9亿微信用户的势能累加,在微信上开启直播已成为越来越多企业的必然选择. 青犀团队研发的EasyNVR核心在 ...
- (转)json数据解析异常而导致网络请求失败的解决办法(其一)
原文出处 https://www.jianshu.com/p/d6bd6bd5fce3 参考文章 问题概述 笔者在开发过程中临时遇到一个本来仅有web端的项目临时增加Android端,导致后端在出接口 ...
- android json解析异常,json数据解析异常而导致网络请求失败的解决办法(其一)
问题概述 笔者在开发过程中临时遇到一个本来仅有web端的项目临时增加Android端,导致后端在出接口时并未考虑Android端的json数据的解析,导致接口是这样的.... 正确请求 { " ...
- iphone/苹果手机 微信小程序 真机调试 网络不通 网络请求失败
问题 问题:iphone/苹果手机 微信小程序 真机调试 网络请求失败,可以确定的是,真机和开发工具所在电脑肯定是在一个网段的,把蜂窝数据都关了,只保留了WIFI,还是请求不通, 解决 最终参考 微信 ...
- ios获取网络请求失败相关数据
ios获取网络请求失败相关数据 很多时候和后台处理数据的时候很多时候后台会在网络请求失败的某些不同情况下带回不同的数据这个时候如何获取数据及拿到需要处理的数据: //如果请求失败 对象是NSURLSe ...
- IOS 京东相关app 出现“网络请求失败,请检查您的网络设置”的解决办法
问题情况 在IOS系统下,下载安装或者更新新版的京东相关app之后,打开app直接就是"网络请求失败,请检查网络设置",无论是数据连接还是wifi都试了,都是网络请求失败. 然而打 ...
- android——rxjava异步Consumer类似promise、重试机制、网络请求失败重试、合并两个异步都完成才往下运行、实现数据缓存优先加载
1.rxjava异步Consumer 导入fxjava包: implementation 'io.reactivex.rxjava3:rxjava:3.0.6' // rxBinding已经依赖了rx ...
最新文章
- linux的零碎知识
- mysql+create+table+index_mysql------基础及常见SQL技巧
- 步步深入MySQL:架构-查询执行流程-SQL解析顺序
- 2021高考襄阳四中成绩查询,襄阳四中2020年高考成绩怎么样(高考喜报)
- C# 文件操作详解(一)---------File类
- 二级缓存失效_缓存核心技术:缓存穿透、缓存并发、缓存失效之思路变迁
- C#实现进度条progress control(转载)
- 建立apk定时自动打包系统第一篇——Ant多渠道打包并指定打包目录和打包日期...
- 深度学习图像分类(七):DenseNet
- 城建坐标与经纬度转换工具
- 备战2022软考网络管理员(1)介绍与开篇
- 开学季,微信公众号图文排版必备十大素材
- 交叉验证(Cross Validation)
- 【Redis-6.0.8】Redis中的RAX
- 转:如何做好团队复盘?3大阶段、9个步骤
- 2019Python人工智能前景怎么样?
- 关于iPhone出现白苹果黑屏现象的修复方法
- 微信小程序计算时间差
- Android学习 书籍
- 不花钱 三分钟就可以搭建商城的详细步骤