思考这些问题可以帮助你更好的理解什么是订阅、Observable
有什么特性、如何比较优雅地写 Rx 代码。
请求一个列表数据时,切换新的分类,取消上一次的网络请求(如果未完成)。该使用什么操作符?
单纯地发送一个请求,如何取消该网络请求?该使用什么操作符?
在进行一些操作时,我们可能需要获取某些最新的值,比如一个下单页面,点击确定,总是应当带上订单最新的数据。该使用什么操作符?可以使用 combineLatest
吗?可以使用 withLatestFrom
吗?可以使用 flatMap
吗?
如果可以,他们有什么区别吗?
依次发送两个请求,第二个请求需要第一个请求的参数和响应结果,该如何组织操作符?列举几种?
如何跟踪上述请求状态?该使用什么操作符?
点击一个按钮发送一个请求,当该请求完成前,该按钮点击都不应该继续发送请求。该使用什么操作符?
遇到过 Cell 中使用 Button 重复订阅问题吗?如何解决比较好?
解决复用后,将一个 Button 点击绑定到一个 PublishSubject
可能会有什么问题?
flatMap
同一个实例会怎么样Observable
,每当订阅该 Observable
都将发送一个请求,每次请求带上一个的随机的 uuid请配合 RxCocoa 提供的
URLSession
扩展方法完成。
创建一个操作符,可以检查输入结果是否和最初的一样。比如一个 TextField 最初是 text1
,经过一顿乱输,如何判断最终输入结果是否和最初相同?请尽量复用该操作符到各个场景。
invokeMethod
和 sendMessage
的区别比如,发送一个网络请求后,点击 Button 可以重复发送一个该网络请求。创建一个操作符以复用。