Skip to content

Instantly share code, notes, and snippets.

@saiday
Created December 10, 2015 11:01
Show Gist options
  • Select an option

  • Save saiday/767849b0a561079de06c to your computer and use it in GitHub Desktop.

Select an option

Save saiday/767849b0a561079de06c to your computer and use it in GitHub Desktop.
ReactiveCocoa callback chaining
-(RACSignal*)fetchUserIdSignal {
return [RACSignal createSignal:^(RACDisposable *(id subscriber) {
[Client fetchUserIdSuccess:^(NSString *userId) {
[subscriber sendNext:userId];
[subscriber sendCompleted];
} failure:^(NSError *error) {
[subscriber sendError:error]
}];
return nil;
}
}
-(RACSignal*)fetchUserFollowersCountSignal:(NSString *)userId {
return [RACSignal createSignal:^(RACDisposable *(id subscriber) {
[Client fetchUserFollowersCountWithUserId:userId success:^(NSNumber *count) {
[subscriber sendNext:count];
[subscriber sendCompleted];
} failure:^(NSError *error) {
[subscriber sendError:error]
}];
return nil;
}
}
// impl
[[[self fetchUserIdSignal] flattenMap:^(NSString *userId) {
return [self fetchUserFollowersCountSignal:userId];
}] subscribeNext:^(NSNumber *number) {
NSLog(@"userId: %@", number);
}];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment