RAC的throttle操作
2021-04-30 本文已影响0人
凯司机
时间操作——throttle:阀门:
// 阀门:防止重复的操作和按钮以及搜索的多次重复的点击和事件的触发。
// 信号执行2秒后,如果没有新的操作则执行当前最终的信号。
RACSignal *signalA = [[[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[subscriber sendNext:@1];
[subscriber sendNext:@2];
[subscriber sendNext:@4];
[subscriber sendCompleted];
return [RACDisposable disposableWithBlock:^{
NSLog(@"完成");
}];
}] delay:3] repeat];
RACSignal *signalB = [signalA throttle:2];
[[signalB subscribeNext:^(id x) {
NSLog(@"subscribeNext:%@",x);
}] dispose];
结果:4