rac-时间 interval delay

  • timeout:超时,可以让一个信号在一定的时间后,自动报错。
1
2
3
4
5
6
7
8
9
10
11
RACSignal *signal = [[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
return nil;
}] timeout:1 onScheduler:[RACScheduler currentScheduler]];
[signal subscribeNext:^(id x) {
NSLog(@"%@",x);
} error:^(NSError *error) {
NSLog(@"%@",error);
}];

interval

  • interval 定时:每隔一段时间发出信号
1
2
3
4
[[RACSignal interval:1 onScheduler:[RACScheduler currentScheduler]] subscribeNext:^(id x) {
NSLog(@"%@",x);
}];

delay

  • delay 延迟发送next。
1
2
3
4
5
6
7
8
RACSignal *signal = [[[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[subscriber sendNext:@1];
return nil;
}] delay:2] subscribeNext:^(id x) {
NSLog(@"%@",x);
}];
  • startWith:在发送消息之前,先发送一个消息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
RACSignal *signal = [[RACSignal createSignal:^RACDisposable *(id<RACSubscriber> subscriber) {
[subscriber sendNext:@"DanaChu"];
[subscriber sendCompleted];
return nil;
}] startWith:@"RAC"];
[signal subscribeNext:^(id x) {
NSLog(@"%@",x);
}];
// output:
// RAC
// DanaChu