Added throttling on requests made by RCTImageLoader

Reviewed By: javache

Differential Revision: D2938143

fb-gh-sync-id: bac1185d4792dcca0012905126c9ef2aa45905d5
shipit-source-id: bac1185d4792dcca0012905126c9ef2aa45905d5
This commit is contained in:
Nick Lockwood
2016-02-16 12:41:20 -08:00
committed by facebook-github-bot-4
parent 07a5f4407f
commit 0427c3d273
6 changed files with 169 additions and 34 deletions

View File

@@ -33,6 +33,7 @@
_request = request;
_handler = handler;
_completionBlock = completionBlock;
_status = RCTNetworkTaskPending;
}
return self;
}
@@ -55,6 +56,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init)
if ([self validateRequestToken:[_handler sendRequest:_request
withDelegate:self]]) {
_selfReference = self;
_status = RCTNetworkTaskInProgress;
}
}
}
@@ -66,6 +68,7 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init)
[_handler cancelRequest:strongToken];
}
[self invalidate];
_status = RCTNetworkTaskFinished;
}
- (BOOL)validateRequestToken:(id)requestToken
@@ -83,8 +86,9 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init)
if (_completionBlock) {
_completionBlock(_response, _data, [NSError errorWithDomain:RCTErrorDomain code:0
userInfo:@{NSLocalizedDescriptionKey: @"Unrecognized request token."}]);
[self invalidate];
}
[self invalidate];
_status = RCTNetworkTaskFinished;
return NO;
}
return YES;
@@ -130,8 +134,9 @@ RCT_NOT_IMPLEMENTED(- (instancetype)init)
if ([self validateRequestToken:requestToken]) {
if (_completionBlock) {
_completionBlock(_response, _data, error);
[self invalidate];
}
[self invalidate];
_status = RCTNetworkTaskFinished;
}
}