Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在RxSwift中按顺序循环观察?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个轮询网络服务的流.此时它会查询服务,然后在短暂延迟后完成.我希望继续流重启而不是完成从而永远轮询服务.

你可以做点什么……

@H_575_9@myPollingStream.repeat()

但是在RxSwift中重复实际上是repeatElement,因此实际上生成一个可观察的流.您可以将这些连接映射到扁平的序列序列,但RxSwift没有concatMap运算符.

那么如何在RxSwift中循环一个observable呢?

我希望请求是顺序的,而不是并发的,因此flatMap不是一个选项,因为它合并了导致重叠请求的流.我正在寻找类似于retry()的工作方式,但重新启动onComplete而不是onError

解决方法

Observable.repeatElement(myPollingStream,scheduler: Mainscheduler.instancE).concat()

> repeatElement(_:scheduler :)将创建无限的轮询查询流.
> contat()将确保在订阅一个查询之前完成每个轮询查询.

注意

然上述方法在理论上有效,但没有背压实现,repeatElements(_:scheduler :)会发出事件,直到最终耗尽内存.这使得此解决方案不适用于RxSwift 3.0.更多细节可以在RxSwift存储库的this issue中找到.

大佬总结

以上是大佬教程为你收集整理的如何在RxSwift中按顺序循环观察?全部内容,希望文章能够帮你解决如何在RxSwift中按顺序循环观察?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。