Reactivecocoa: ¿Por qué no se completan las señales de ejecución de RACCommand?

Creado en 3 feb. 2015  ·  5Comentarios  ·  Fuente: ReactiveCocoa/ReactiveCocoa

¿Por qué no se completan las señales de ejecución de RACCommand ? Considere el siguiente ejemplo:

RACCommand *command = [[RACCommand alloc] initWithSignalBlock:^ RACSignal * (id value) {
    return [RACSignal createSignal:^ RACDisposable * (id<RACSubscriber> subscriber) {
        [subscriber sendNext:value];
        [subscriber sendCompleted];
        return nil;
    }];
}];

[command.executionSignals.switchToLatest subscribeNext:^(id value) {
    NSLog(@"next: %@", value); // logs "next: foo"
} completed:^{
    NSLog(@"completed"); // never executes
}];

[command execute:@"foo"];

No debe confundirse con la señal de señales executionSignals .

question

Comentario más útil

[[command.executionSignals
    map:^(RACSignal *execution) {
        return [execution doCompleted:^{
            // something
        }];
    }]
    switchToLatest]

Todos 5 comentarios

-switchToLatest no se completa hasta que se completa la señal de señales. Debería usar -materialize o -concat: en las señales internas para identificar un evento de finalización.

Miré la documentación de todo excepto la de -switchToLatest .

Gracias por la rápida respuesta. Ustedes molan. :guiño:

Hola tios

Me encuentro con el mismo problema,
¿Cómo podría obtener la señal interna de un comando?

Gracias

¿Recibo un código de muestra?

Gracias

[[command.executionSignals
    map:^(RACSignal *execution) {
        return [execution doCompleted:^{
            // something
        }];
    }]
    switchToLatest]
¿Fue útil esta página
0 / 5 - 0 calificaciones