2

This is very cumbersome

RACSignal *originalSignal = ...;

RACSignal *mappedSignal = [[[[[originalSignal publish] autoconnect] materialize] map:^id(RACEvent *event) {
    if(event.eventType == RACEventTypeError)
    {
        return [RACEvent eventWithError:[self errorForHelperError:event.error]];
    }
    return event;
}] dematerialize];
hfossli
  • 22,616
  • 10
  • 116
  • 130

1 Answers1

9

-catch: lets you handle this much more elegantly:

RACSignal *mappedSignal = [originalSignal catch:^(NSError *error) {
    return [RACSignal error:[self errorForHelperError:error]];
}];
joshaber
  • 2,465
  • 20
  • 13