数量操作——scan:以及各种变种的操作
// 数量操作——scan:时时汇总显示进度,进行计算。
RACSignal *signalA = [RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[subscriber sendNext:@1];
[subscriber sendNext:@2];
[subscriber sendNext:@4];
[subscriber sendCompleted];
return [RACDisposable disposableWithBlock:^{
NSLog(@"完成");
}];
}];
RACSignal *signalB = [signalA scan:@0 reduce:^id(NSNumber *running, NSNumber *next) {
return @(running.integerValue + next.integerValue);
}];
[[signalB subscribeNext:^(id x) {
NSLog(@"subscribeNext:%@",x);
}] dispose];
// 结果:1、3、7
image.png
网友评论