在+ createSignal函数创建的信号上使用油门操作符时,我得到一个奇怪的结果:
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");
}];
根据操作员的目标预期(仅当我们在窗口间隔中没有接收到另一个下一个时发送nexts,并且如果在窗口到期之前收到另一个值,则拒绝先前的值并且窗口重新启动以获取下一个值):
onNext: 2
Completed
,实际结果是:
onNext: 4
Completed
我错过了什么吗?
答案 0 :(得分:0)
注意&#34; subscribeOn&#34;必须由&#34; deliverOn&#34;不要在睡眠时阻止线程。