maybe I am misunderstanding concat? why doesn't this code output also "B" I just get an output "A" Shouldn't concat work like this:
RACSignal *signal = [RACSignal createSignal:^ RACDisposable * (id<RACSubscriber> subscriber) {
[subscriber sendNext:@"A"];
return nil;
}];
signal = [signal concat:[RACSignal createSignal:^ RACDisposable * (id<RACSubscriber> subscriber) {
[subscriber sendNext:@"B"];
return nil;
}] ];
signal= [signal doNext:^(id x){
NSLog(@"doNext %@",x);
}];
signal= [signal flattenMap:^RACStream *(id value) {
NSLog(@"flattenMap %@", value);
return [RACSignal return:value];
}];
signal=[signal doNext:^(id x){
NSLog(@"doNext after flattenMap %@",x);
}];
[signal subscribeNext:^(id x) {
NSLog(@"subscribeNext %@", x);
}];
Your first signal never completes. If you call [subscriber sendCompleted]
after calling [subscriber sendNext:@"A"]
, then you'll find -concat:
does what you expect.