0

科特林代码:

fun <T> Observable<T>.circuitBreaker(): Observable<T> {
  val relay = PublishRelay.create<T>()
  this.subscribe(relay)
  return relay.toFlowable(BackpressureStrategy.LATEST).toObservable()
}

以上是我正在尝试将其转换为 Swift 的 Kotlin 代码。但是,我遇到了一个错误,说无法将“PublishRelay”类型的值转换为预期的参数类型“(Event<_>) -> Void”

SWIFT代码:

extension Observable {
  func circuitBreaker<T>() -> Observable<T> {
    let relay = PublishRelay<T>()
    self.subscribe(relay)
    return relay.asObservable()
  }
}

任何帮助,将不胜感激。

4

2 回答 2

0

你不能绑定和ObservableRelay请参阅此处的相关讨论。

于 2017-11-08T13:22:59.973 回答
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()
  }
}
于 2018-05-22T10:20:39.587 回答