Pourquoi les signaux d'exécution de RACCommand
ne se terminent-ils pas? Prenons l'exemple suivant:
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"];
Ne pas se tromper avec le signal executionSignals
des signaux.
-switchToLatest
ne se termine pas tant que le signal de signaux n'est pas terminé. Vous devez utiliser -materialize
ou -concat:
sur les signaux internes pour identifier un événement d'achèvement.
J'ai regardé la documentation de tout sauf celle de -switchToLatest
.
Merci pour la réponse rapide. Vous êtes top les gars. :clin d'œil:
Salut les gars
Je rencontre le même problème,
Comment pourrais-je obtenir le signal interne d'une commande?
Merci
Mon je reçois un exemple de code?
Merci
[[command.executionSignals
map:^(RACSignal *execution) {
return [execution doCompleted:^{
// something
}];
}]
switchToLatest]
Commentaire le plus utile