ReactiveBigJC-节气门操作员的麻烦



在使用 创建函数创建的信号上使用节气门操作员时,我会得到一个奇怪的结果:

    RACSignal* signal = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {

    [subscriber sendNext:@"1"];
    [subscriber sendNext:@"2"];
    [NSThread sleepForTimeInterval:4];
    [subscriber sendNext:@"3"];
    [subscriber sendNext:@"4"];
    [subscriber sendCompleted];
    return nil;
}];
[[[signal subscribeOn:[RACScheduler scheduler]] throttle:3] subscribeNext:^(id data) {
    NSLog(@"onNext: %@", data);
} completed:^{
    NSLog(@"Completed");
}];

根据操作员的目标所期望的是什么(只有在窗口间隔中未收到另一个值时发送隔壁,如果在窗口到期之前收到另一个值,则拒绝上一个值,并且窗口重新启动窗口对于下一个值)是:

onNext: 2
Completed

实际结果是:

onNext: 4
Completed

我想念什么吗?

只需注意"订阅"的存在,必须用" exraveron"代替,以不通过睡眠来阻止线程。

最新更新