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

Ale*_*hka 5 maybe observable swift rx-swift

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

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)
Run Code Online (Sandbox Code Playgroud)

worthReactingObservable<String>
translator.getTranslation退货类型Maybe<DataModel>

我遇到了构建错误

调用中的额外参数'onError'

Ale*_*hka 7

Maybe扁平化成Observable产品Observable.Observable不会发出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)
Run Code Online (Sandbox Code Playgroud)


Jar*_*ich 6

对于那些得到OP错误但有不同原因的人,请检查您是否throwing因为没有将您的do-catch条款详尽无遗而恰好进行了一次关闭.

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