Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了RxSwift:订阅Observable时的额外参数’onError’大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下代码

let fetcher = DiagnosticFetcher(commandSender: sender)
fetcher.fetch()
    .observeOn(Mainscheduler.instancE)
    .subscribe(
       onNext: { self.store.save(content: $0) },onError: { self.view.showError("Error") },onCompleted: { log.verbose("Diagnostic fetched") })

它不编译:调用中的额外参数’onError’.如果我使用onsuccess或onDoesnotExistButShowTheBug而不是onNext,我会得到同样的错误.

fetch()方法返回一个Observable< String> (其最后一个运算符是reducE).似乎subscribe()调用只需要一个lambda:

fetcher.fetch()
   .observeOn(Mainscheduler.instancE)
   .subscribe(onNext: { self.store.save(content: $0) })

结果:调用外部参数标签’onNext:’.和:

fetcher.fetch()
   .observeOn(Mainscheduler.instancE)
   .subscribe({ self.store.save(content: $0) })

编译好.

我觉得我得到了错误的subscribe()实现.我想要那个:

public func subscribe(onNext: ((ElementTypE) -> Void)? = nil,onError: ((Swift.Error) -> Void)? = nil,onCompleted: (() -> Void)? = nil) -> Disposable {

但显然,编译器没有.
我正在使用XCode 9.2和Swift 4以及RxSwift 4.1.1.

我的应用程序中有其他部分使用onNext:onError:在一个可观察的工作区.我不能指出这个电话的不同之处.

有关如何识别问题根源的任何想法?

解决方法

我通过指定onError lambda中的第一个参数来编译它:

fetcher.fetch()
   .observeOn(Mainscheduler.instancE)
   .subscribe(
      onNext: { self.store.save(content: $0) },onError: { _ in self.view.showError("Error")})

大佬总结

以上是大佬教程为你收集整理的RxSwift:订阅Observable时的额外参数’onError’全部内容,希望文章能够帮你解决RxSwift:订阅Observable时的额外参数’onError’所遇到的程序开发问题。

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

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