我有很多Alamofire請求/響應代碼處理的地方。有沒有辦法做Alamofire請求重試
由於某些間歇性問題(最常見的是片狀網絡),每個請求可能會失敗。
我希望能夠在救援之前重試請求3次。
直截了當的方法是有類似的東西
var errorCount = 0
func requestType1() {
let request = Alamofire.request(...).responseJSON { response in
if (isError(response) && errorCount < 3) {
errorCount += 1
request1()
}
if (isError(response)) {
handleError()
}
handleSuccess()
}
}
不過,我不喜歡這種方法的多種原因很多。最明顯的是,我需要爲每個請求類型實現這樣的代碼(我有類似的15個)。
我珍玩是否有辦法做到像(其中的變化是最小的,非侵入式)
let request = Alamofire.request(..., **3**)
你可以做一個包裝,接受請求一結束塊?那麼,不是直接調用請求,而是在塊中有相同的請求代碼,但調用封裝器?更易於更改代碼。 – Carlos
卡洛斯。我想你是對的。我忽略了這個:)。你想寫作答案? –
當然,給我一點時間,我會這樣做 – Carlos