Reactivecocoa: Por que os sinais de execução do RACCommand não são concluídos?

Criado em 3 fev. 2015  ·  5Comentários  ·  Fonte: ReactiveCocoa/ReactiveCocoa

Por que os sinais de execução de RACCommand não são concluídos? Considere o seguinte exemplo:

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"];

Não deve ser confundido com o sinal executionSignals dos sinais.

question

Comentários muito úteis

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

Todos 5 comentários

-switchToLatest não termina até que o sinal de sinais seja concluído. Você precisaria usar -materialize ou -concat: nos sinais internos para identificar um evento de conclusão.

Eu olhei a documentação de tudo, exceto a de -switchToLatest .

Obrigado pela resposta rápida. Vocês são foda. :piscadela:

Oi, pessoal

Eu encontro o mesmo problema,
Como posso obter o sinal interno de um comando?

obrigado

Meu eu recebo um código de amostra?

obrigado

[[command.executionSignals
    map:^(RACSignal *execution) {
        return [execution doCompleted:^{
            // something
        }];
    }]
    switchToLatest]
Esta página foi útil?
0 / 5 - 0 avaliações