Skip to content

Commit 3081960

Browse files
authored
Merge pull request #361 from jamesreggio/fix-multiple-callbacks
Fix multiple callback invocation in iOS with `downloadFile`
2 parents b1cae86 + b01e8fe commit 3081960

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

RNFSManager.m

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,14 @@ - (dispatch_queue_t)methodQueue
427427
NSNumber* progressDivider = options[@"progressDivider"];
428428
params.progressDivider = progressDivider;
429429

430+
__block BOOL callbackFired = NO;
431+
430432
params.completeCallback = ^(NSNumber* statusCode, NSNumber* bytesWritten) {
433+
if (callbackFired) {
434+
return;
435+
}
436+
callbackFired = YES;
437+
431438
NSMutableDictionary* result = [[NSMutableDictionary alloc] initWithDictionary: @{@"jobId": jobId}];
432439
if (statusCode) {
433440
[result setObject:statusCode forKey: @"statusCode"];
@@ -439,6 +446,10 @@ - (dispatch_queue_t)methodQueue
439446
};
440447

441448
params.errorCallback = ^(NSError* error) {
449+
if (callbackFired) {
450+
return;
451+
}
452+
callbackFired = YES;
442453
return [self reject:reject withError:error];
443454
};
444455

0 commit comments

Comments
 (0)