2014-03-03 3 views
0

어쩌면 내가 오해를 concat 무엇입니까? 왜 난 그냥 출력을 얻을이 코드 또한 출력 "B" 는 "A" 는 다음과 같이 작업을 CONCAT 안되지 않습니다왜이 연결은 작동하지 않습니까?

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); 
}]; 

답변

1

첫 번째 신호가 완료되지 않습니다. [subscriber sendNext:@"A"]으로 전화 한 후 [subscriber sendCompleted]으로 전화하면 -concat:이 예상대로 작동합니다.

관련 문제