Reactivecocoa: Mengapa sinyal eksekusi RACCommand tidak selesai?

Dibuat pada 3 Feb 2015  ·  5Komentar  ·  Sumber: ReactiveCocoa/ReactiveCocoa

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 .

question

Komentar yang paling membantu

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

Semua 5 komentar

-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]
Apakah halaman ini membantu?
0 / 5 - 0 peringkat