簡體   English   中英

RxSwift ,如何使用 .code 返回錯誤?

[英]RxSwift , how to return error with .code?

func loginClicked(){
   self.networkingSession.deviceRegister().map { _ in}
       .observeOn(MainScheduler.instance)
       .subscribe(onSuccess: { [weak self] _ in
          self?.didSignIn.onNext(())
        },onError: { [weak self] err in
          print(">>>>>>> What \(err.localizedDescription)")
          self?.didFailSignIn.onNext(err)
      })
      .disposed(by: disposeBag)
  }

在我的func deviceRegister() -> Single<DeviceRegisterResponse> ,我返回 .failure 有兩種錯誤類型:

 single(.error(NSError(domain: "Fail Case A",code: 999, userInfo: nil)))
 single(.error(NSError(domain: "Fail Case B",code: 111, userInfo: nil)))

我想在onError指出一個錯誤,並為case Acase B創建一個切換條件。

不幸的是,除了err.localizedDescription之外,我在 err 中找不到任何信息。

將您的err轉換為NSError 它有一個code屬性。

let err1 = err as NSError
print(err.code)

您正在發送NSError ,但在鏈中它被抽象為Error 因此,在接收時,您可以將其轉換回NSError 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM