Skip to content

Instantly share code, notes, and snippets.

@SunXiaoShan
Created July 14, 2017 07:42
Show Gist options
  • Select an option

  • Save SunXiaoShan/656fc99006544175fa2dcf2ed6cb08cc to your computer and use it in GitHub Desktop.

Select an option

Save SunXiaoShan/656fc99006544175fa2dcf2ed6cb08cc to your computer and use it in GitHub Desktop.
RACwaterfallDemo
// Define function
- (RACSignal *)RACSignalDemoA {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
NSLog(@"handle A");
[subscriber sendNext:@"A"];
[subscriber sendCompleted];
return nil;
}];
}
- (RACSignal *)RACSignalDemoB {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
NSLog(@"handle B");
[subscriber sendNext:@"B"];
[subscriber sendCompleted];
return nil;
}];
}
- (RACSignal *)RACSignalDemoC {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
NSLog(@"handle C");
[subscriber sendNext:@"C"];
[subscriber sendCompleted];
return nil;
}];
}
// demo
[[[[[self RACSignalDemoA] doNext:^(id _Nullable x) {
NSLog(@"function : %@", x);
}] then:^RACSignal * _Nonnull{
return [[self RACSignalDemoB] doNext:^(id _Nullable x) {
NSLog(@"function : %@", x);
}];
}] then:^RACSignal * _Nonnull{
return [[self RACSignalDemoC] doNext:^(id _Nullable x) {
NSLog(@"function : %@", x);
}];
}] subscribeNext:^(id _Nullable x) {
NSLog(@"function : %@", x);
} error:^(NSError * _Nullable error) {
NSLog(@"function error");
} completed:^{
NSLog(@"complete");
}];
// output
/*
handle A
function : A
handle B
function : B
handle C
function : C
function : C
complete
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment