Swift-RxSwift 32使用详解(UITableView 3的使用:刷新表格数据)
(1)接口初始化后,tableView默认会加载一些随机数据。
(2)点击右上角的刷新按钮,tableView将重新加载并显示一批新数据。
(3)为了演示方便,每次采集的数据不真实时,发起一个网络请求。而是在本地生成后延迟2秒来模拟这个异步请求。
(1)flatplattest的作用是,当短时间内反复点击“刷新”按钮时(最后一个请求还没回来),表只会接收并显示最后一个请求,虽然还是会发起多个请求。避免表格不断刷新的现象。
(2)我们也限制来源。即throttle设置一个阈值(比如1秒),如果1秒内有多次点击,只取最后一次,那么自然只发送一次数据请求。
在实际项目中,我们可能需要中断一个未完成的网络请求。比如切换页面或者分类的时候,如果最后一个请求还没有完成,就应该取消。下面的例子展示了如何实现这个函数。
这里我们在前一个例子的基础上增加一个“停止”按钮。当发起请求且数据尚未返回(2秒内)时,按下该按钮后将停止结果的接收和处理,即本次表格不会加载和显示请求的数据。
这个函数简单地由takeUntil操作符实现。当takeUntil中的可观察对象发送一个值时,它将结束相应的可观察对象。