Ton*_*old 3 objective-c reactive-cocoa
return [RACSignal create:^(id <RACSubscriber> subscriber) {
if (someError) {
[subscriber sendError:documentCreationError];
return;
}
[subscriber sendNext:nil];
[subscriber sendCompleted];
}];
Run Code Online (Sandbox Code Playgroud)
鉴于上面的示例,return;在向订户发送错误之后是否有必要,或者在此块内执行是否立即停止?
鉴于上面的例子,是回报; 在向订户发送错误之后是否有必要,或者在此块内执行是否立即停止?
鉴于上面的确切示例代码,return没有必要.但是这个块内的执行不会立即停止.return如果您或其他人稍后添加了一些可能产生副作用的代码,使用它会更安全:
return [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
if (someError) {
[subscriber sendError:documentCreationError];
}
// This message will be printed even if an error is sent above:
NSLog(@"Do something that could have side effects.");
[subscriber sendNext:nil];
[subscriber sendCompleted];
return nil;
}];
Run Code Online (Sandbox Code Playgroud)
(这就是为什么最好不要用信号来保持副作用,但是用Obj-C和ReactiveCocoa强制执行它是不可能的.)
| 归档时间: |
|
| 查看次数: |
223 次 |
| 最近记录: |