【发布时间】:2023-03-25 05:43:02
【问题描述】:
我对返回错误的请求的最大重复次数有疑问。在我的情况下,我需要向后端发送一个新请求,如果以前下降,但最多 3 次。我正在使用选项来获取结果,返回数据或错误:
fun sendRequest(): Single<Option<BeResponse>
在sendRequest() 函数内部,我将其从Either<ApiError, Data> 转换为BeResponse
data class BeReponse(
val error: ApiError? = null,
val data: Data? = null
)
当我尝试获取数据时,如果前一个失败,我需要发送请求。所以我正在使用:
sendRequest().flatMap{ option ->
option.map {
if (option.error != null) {
Single.just(null.toOption())
} else {
Single.just(it)
}
}.getOrElse{ sendRequest() }
}
但如果我有错误,我会无限调用 sendRequest。如何设置最大尝试次数?
【问题讨论】: