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.
-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]
Comentários muito úteis