2017-11-11 181 views
1

我有以下斯威夫特4 RxSwiftRxSwift:額外的參數 'onError的' 呼叫

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回報Maybe<DataModel>

我得到建立自己的錯誤

類型

呼叫中的額外參數'onError'

回答

0

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)