【发布时间】:2023-04-01 14:20:02
【问题描述】:
我有一个小问题:
- 我有一个网络请求返回
Observable<Result<String, RequestError>>,我们称之为requestToken - 如果这个请求成功了,我想用
String(token)做另一个返回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语法相同,它们都没有给我提供函数签名上可能发生的错误的文档。
标签: ios swift rx-swift reactivex