Mengapa sinyal eksekusi RACCommand
selesai? Perhatikan contoh berikut:
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"];
Jangan keliru dengan sinyal sinyal executionSignals
.
-switchToLatest
tidak selesai sampai signal-of-signal selesai. Anda perlu menggunakan -materialize
atau -concat:
pada sinyal bagian dalam untuk mengidentifikasi acara penyelesaian.
Saya melihat dokumentasi semuanya kecuali yang -switchToLatest
.
Terima kasih atas balasan cepatnya. Kalian keren. :mengedipkan:
Hai kawan
Saya mengalami masalah yang sama,
Bagaimana saya bisa mendapatkan sinyal batin dari sebuah perintah?
Terima kasih
Saya saya mendapatkan kode sampel?
Terima kasih
[[command.executionSignals
map:^(RACSignal *execution) {
return [execution doCompleted:^{
// something
}];
}]
switchToLatest]
Komentar yang paling membantu