Загляните внутрь RequestChain.swift, там есть несколько комментариев с примером, которые могут помочь.Я считаю, что вы можете сделать что-то вроде:
func redirectRequest() -> Request {
return self.yourAnotherRequest(onSuccess: {
}, onFailure: { error in
})
}
func yourRequest(request: Siesta.Request) -> Request {
return request.chained {
guard case .failure(let error) = $0.response,
error.httpStatusCode == 401 else {
return .useThisResponse
}
return .passTo(
self.redirectRequest().chained {
if case .failure = $0.response {
return .useThisResponse
} else {
return .passTo(request.repeated())
}
}
)
}
}
Вы можете искать больше примеров с ключевыми словами chained
, useThisResponse
и passTo
в источниках Siesta.
Пожалуйста, дайте нам знатьесли это поможет решить вашу проблему, и было бы неплохо увидеть ваше окончательное решение.