Browse Source

Update ResponseSerialization.swift

Prevent unnecessary call to the response serialiser in case of an error picked up by the TaskDelegate.
Julien Ducret 10 năm trước cách đây
mục cha
commit
39e5ecb98c
1 tập tin đã thay đổi với 8 bổ sung5 xóa
  1. 8 5
      Source/ResponseSerialization.swift

+ 8 - 5
Source/ResponseSerialization.swift

@@ -106,11 +106,14 @@ extension Request {
         -> Self
     {
         delegate.queue.addOperationWithBlock {
-            var result = responseSerializer.serializeResponse(self.request, self.response, self.delegate.data)
-
-            if let error = self.delegate.error {
-                result = .Failure(self.delegate.data, error)
-            }
+            
+            let result: Result<T.SerializedObject> = {
+                if let error = self.delegate.error {
+                    return .Failure(self.delegate.data, error)
+                } else {
+                    return responseSerializer.serializeResponse(self.request, self.response, self.delegate.data)
+                }
+            }()
 
             dispatch_async(queue ?? dispatch_get_main_queue()) {
                 completionHandler(self.request, self.response, result)