gpt4 book ai didi

swift - RxSwift ConnectableObservable 缺少自动连接

转载 作者:行者123 更新时间:2023-11-30 11:53:14 26 4
gpt4 key购买 nike

问题

我正在将一个使用 RxJava 的项目移植到 RxSwift。有一个使用 autoconnect() 的 ConnectableObservable。我如何将其移植到 RxSwift?我正在寻找类似的功能或解决方法。

信息

我想在 RxSwift 中使用 refcount() ,但是一旦订阅者数量变为 0,它将停止在 autoconnect() 继续的地方。根据这些release notes ,autoConnect 的工作原理与 refCount 的前半部分类似,或者更准确地说,它的行为与 refCount() 类似,只是当订阅者丢失时它不会断开连接。

最佳答案

我采纳了 @akamokd 的建议,我只是创建了自己的建议。因为我只需要 autoConnect() 这非常简单。

extension ConnectableObservableType {
func autoconnect() -> Observable<E> {
return Observable.create { observer in
return self.do(onSubscribe: {
_ = self.connect()
}).subscribe { (event: Event<Self.E>) in
switch event {
case .next(let value):
observer.on(.next(value))
case .error(let error):
observer.on(.error(error))
case .completed:
observer.on(.completed)
}

}
}
}
}

关于swift - RxSwift ConnectableObservable 缺少自动连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48124144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com