Last active
August 11, 2016 13:14
-
-
Save maximgavrilov/a4f2233d4f134feb92ff286833af9c97 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#import <Bolts/Bolts.h> | |
@property (strong, nonatomic) BFTask *backgroundRequest1; | |
- (BFTask<NSData *> *)dataTaskWithURL:(NSURL *)url | |
{ | |
BFTaskCompletionSource *taskCompletionSource = [BFTaskCompletionSource taskCompletionSource]; | |
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithURL:url | |
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { | |
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response; | |
if (httpResponse.statusCode == 200 && !error && data) { | |
[taskCompletionSource setResult:data]; | |
} else { | |
[taskCompletionSource setError:error]; | |
} | |
}]; | |
[task resume]; | |
return taskCompletionSource.task; | |
} | |
- (BFTask *)request1 | |
{ | |
return [self dataTaskWithURL:"URL1"]; | |
} | |
- (BFTask *)request2 | |
{ | |
return [self dataTaskWithURL:"URL2"]; | |
} | |
- (void)viewDidLoad | |
{ | |
backgroundRequest1 = [self request1]; | |
} | |
- (void)handleClick | |
{ | |
__weak weakSelf = self; | |
[[[backgroundRequest1 continueWithBlock:^id(BFTask *task) { | |
if (task.error) { | |
return [weakSelf request1]; | |
} | |
return [BFTask taskWithResult:task.result]; | |
}] continueWithSuccessBlock:^id(BFTask *task) { | |
return [weakSelf request2]; | |
}] continueWithBlock:^id(BFTask *task) { | |
if (task.error) { | |
// show alert! | |
} else { | |
// show next screen | |
} | |
return nil; | |
}]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment