7

何らかの理由で、エラー メッセージが表示されません。(要点をわかりやすくするために、ここではコードを単純化しました。)

// 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:、完了ブロックがそれを受け取るのはなぜですか?

4

2 に答える 2