Created
July 14, 2017 07:42
-
-
Save SunXiaoShan/656fc99006544175fa2dcf2ed6cb08cc to your computer and use it in GitHub Desktop.
RACwaterfallDemo
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
| // 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