Kaynağa Gözat

Switched retry logic over to a guard instead of if / else to reduce nesting.

Christian Noon 9 yıl önce
ebeveyn
işleme
904d0d3605
1 değiştirilmiş dosya ile 12 ekleme ve 14 silme
  1. 12 14
      Source/SessionDelegate.swift

+ 12 - 14
Source/SessionDelegate.swift

@@ -403,21 +403,19 @@ extension SessionDelegate: URLSessionTaskDelegate {
         /// should be retried. Otherwise, complete the task by notifying the task delegate.
         if let retrier = retrier, let error = error {
             retrier.should(sessionManager, retry: request, with: error) { [weak self] shouldRetry, delay in
-                if shouldRetry {
-                    DispatchQueue.utility.after(delay) { [weak self] in
-                        guard let strongSelf = self else { return }
-
-                        let retrySucceeded = strongSelf.sessionManager?.retry(request) ?? false
-
-                        if retrySucceeded {
-                            strongSelf[request.task] = request
-                            return
-                        } else {
-                            completeTask(session, task, error)
-                        }
+                guard shouldRetry else { completeTask(session, task, error) ; return }
+
+                DispatchQueue.utility.after(delay) { [weak self] in
+                    guard let strongSelf = self else { return }
+
+                    let retrySucceeded = strongSelf.sessionManager?.retry(request) ?? false
+
+                    if retrySucceeded {
+                        strongSelf[request.task] = request
+                        return
+                    } else {
+                        completeTask(session, task, error)
                     }
-                } else {
-                    completeTask(session, task, error)
                 }
             }
         } else {