我有以下代码:
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) })
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")})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。