RxSwift:调用中的额外参数'onError'

时间:2017-11-11 02:20:40

标签: swift observable rx-swift maybe

我在Swift 4中使用RxSwift跟随代码

/embed/

worthReacting.flatMap{ (userSearch) in translator.getTranslation(ofWord: userSearch) }.subscribe( onSuccess: {(dataModel) in state.value = .translation(word: dataModel.definition, translations: dataModel.translations) }, onError: {(error) in state.value = .networkError }, onCompleted: { state.value = .unknownWord }).disposed(by: disposeBag) 的类型为worthReacting
Observable<String>返回translator.getTranslation

我收到了构建错误

  

调用

中的额外参数'onError'

2 个答案:

答案 0 :(得分:5)

平行于Maybe

Observable会产生ObservableObservable无法发出onSuccess事件,而是会发出onNext。以下代码将起作用:

worthReacting.flatMap{ (userSearch) in
        translator.getTranslation(ofWord: userSearch)
        }.subscribe(
            onNext: {(dataModel) in
                self.state.value = .translation(word: dataModel.definition,
                                           translations: dataModel.translations)
        },
            onError: {(error) in
                self.state.value = .networkError
        },
            onCompleted: {
                self.state.value = .unknownWord
        }).disposed(by: disposeBag)

答案 1 :(得分:5)

对于那些得到OP错误但原因不同的用户,请检查您是否没有使throwing子句详尽无遗,从而偶然地使了其中一个do-catch闭包。

另外,请注意不要使用单语句闭包(在这种情况下,您应明确使用return)。