我有一個快速的問題:如何映射RxSwift觀察到的,結果
- 我有一個返回
Observable<Result<String, RequestError>>
網絡請求,我們稱之爲requestToken
- 如果此請求成功,我想用
String
(令牌)做返回Observable<Result<NSDictionary, RequestError>>
另一個請求,讓我們把它requestData
- 當第二個請求回來,我想令牌合併到它的字典
- 在我要地圖結束從
Observable<Result<String, RequestError>>
到Observable<Result<NSDictionary, RequestError>>
我怎樣才能做到這一點沒有在我的代碼多重嵌套層次?
這就是我今天:
requestToken()
.flatMap({ result -> Observable<Result<NSDictionary, RequestError>> in
switch result {
case .success(let token):
return requestData(token: token).map({ $0.map({ $0 + ["token": token] }) })
case .failure(let error):
return Observable.of(.failure(error))
}
})
是否有你手動返回錯誤結果而不是使用內置錯誤系統的原因? –
對於類型系統。我需要處理'RequestError'和來自'Observable'的錯誤系統只會給我一個通用的'Error'。 'throw'語法也是如此,它們都沒有給出我可以在函數簽名中發生哪些錯誤的文檔。 –