【发布时间】:2013-11-08 00:57:56
【问题描述】:
由于某种原因,我没有收到错误消息。 (我已经简化了这里的代码以直截了当。)
// Send an error message
_loginButton.rac_command = [[RACCommand alloc] initWithSignalBlock:^RACSignal *(id input) {
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[subscriber sendError:error]; // Pretend this is a real error
return nil;
}];
}];
// Subscribe to loginButton's returned signal
[_loginButton.rac_command.executionSignals subscribeNext:^(RACSignal *loginSignal) {
[loginSignal subscribeError:^(NSError *error) {
NSLog(@"A");
} completed:^{
NSLog(@"B");
}];
}];
这将打印“B”。知道为什么吗?如果在订阅者上调用-sendError:,为什么完成块会收到它?
【问题讨论】:
标签: ios objective-c reactive-cocoa