如何将 RxSwift 的 Single 转换为 Observable 并忽略“完成”事件?

Posted

技术标签:

【中文标题】如何将 RxSwift 的 Single 转换为 Observable 并忽略“完成”事件?【英文标题】:How to convert RxSwift's Single to Observable and ignore `complete` event? 【发布时间】:2019-01-09 14:30:29 【问题描述】:

案件如下。 我有一个从第三方 API 收到的 Single。 我想将此单转换为 Observable,但问题是 Single 转换为 Observable 在发出我不希望发生的值后仍然完成了我的可观察链。我希望我的 observable 永远不会完成。

问题是有什么方法比 'single.flatMap Observable.just($0)' 更容易做我想做的事吗?

【问题讨论】:

【参考方案1】:

我希望看到更多代码,因为single.flatMap Observable.just($0) 不会阻止完成事件的发生,所以如果您认为它确实发生了,那么就有问题了。

坦率地说,.flatMap Observable.just($0) 什么都不做,也就是说,您可以完全删除它,而根本不更改您的代码。

也就是说,停止已完成事件的最明显方法是single.concat(Observable.never())

【讨论】:

以上是关于如何将 RxSwift 的 Single 转换为 Observable 并忽略“完成”事件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 RxSwift 转换为组合框架

如何在 RxSwift 中组合多个 Observable

将 UIApplicationDelegate 方法转换为 RxSwift Observables

RxSwift 将 Observable<String> 转换为 String

如何将 SINGLE char 转换为系统字符串 C++?

RxSwift 无法将调用结果类型 '(_) -> Disposable' 转换为预期类型 '(_) ->