Kotlin代码:
fun <T> Observable<T>.circuitBreaker(): Observable<T> {
val relay = PublishRelay.create<T>()
this.subscribe(relay)
return relay.toFlowable(BackpressureStrategy.LATEST).toObservable()
}
上面是我正在尝试转换为Swift的Kotlin代码。但是,我正面临一个错误,说无法将'PublishRelay'类型的值转换为预期的参数类型'(事件&lt; _&gt;) - &gt;无效“
Swift代码:
extension Observable {
func circuitBreaker<T>() -> Observable<T> {
let relay = PublishRelay<T>()
self.subscribe(relay)
return relay.asObservable()
}
}
任何帮助都将不胜感激。
答案 0 :(得分:0)
您无法将Observable
绑定到Relay
。请参阅相关讨论here。
答案 1 :(得分:0)
我是在下面使用它做的:
extension Observable {
func circuitBreaker<T>() -> Observable<T> {
let relay = PublishSubject<T>()
_ = self.subscribe { (event: Event<Element>) in
if let event = event as? Event<T> { relay.on(event) }
}
return relay.asObservable()
}
}