美文网首页
ReactiveCocoa操作方法-重复

ReactiveCocoa操作方法-重复

作者: 傻傻小萝卜 | 来源:发表于2016-08-15 17:20 被阅读81次

retry重试

只要失败,就会重新执行创建信号中的block,直到成功.

__block inti =0;

[[[RACSignal createSignal:^RACDisposable *(id subscriber) {

if(i ==10) {

[subscriber sendNext:@1];

}else{

NSLog(@"接收到错误");

[subscriber sendError:nil];

}

i++;

returnnil;

}] retry] subscribeNext:^(idx) {

NSLog(@"%@",x);

} error:^(NSError *error) {

NSLog(@“error = %@",error);

}];

replay重放

当一个信号被多次订阅,反复播放内容

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

[subscriber sendNext:@1];

[subscriber sendNext:@2];

returnnil;

}] replay];

[signal subscribeNext:^(idx) {

NSLog(@"第一个订阅者%@",x);

}];

[signal subscribeNext:^(idx) {

NSLog(@"第二个订阅者%@",x);

}];

throttle节流

当某个信号发送比较频繁时,可以使用节流,在某一段时间不发送信号内容,过了一段时间获取信号的最新内容发出。

RACSubject *signal = [RACSubject subject];

_signal = signal;

// 节流,在一定时间(1秒)内,不接收任何信号内容,过了这个时间(1秒)获取最后发送的信号内容发出。

[[signal throttle:1] subscribeNext:^(idx) {

NSLog(@"%@",x);

}];

相关文章

  • ReactiveCocoa操作方法-重复

    retry重试 只要失败,就会重新执行创建信号中的block,直到成功. __block inti =0;[[[R...

  • ReactiveCocoa 常见操作方法介绍

    1.ReactiveCocoa 常见操作方法介绍 1.1 ReactiveCocoa操作须知 所有信号(RACSi...

  • ReactiveCocoa总结二

    1.ReactiveCocoa常见操作方法介绍。 1.1 ReactiveCocoa操作须知 所有的信号(RACS...

  • ReactiveCocoa进阶篇

    1.ReactiveCocoa常见操作方法介绍。 1.1 ReactiveCocoa操作须知所有的信号(RACSi...

  • ReactiveCocoa 常见用法

    1.ReactiveCocoa常见操作方法介绍。1.1 ReactiveCocoa操作须知所有的信号(RACSig...

  • ReactiveCocoa练习

    1.ReactiveCocoa常见操作方法介绍。 1.1 ReactiveCocoa操作须知 所有的信号(RACS...

  • ReactiveCocoa进阶

    1.ReactiveCocoa常见操作方法介绍。 1.1 ReactiveCocoa操作须知所有的信号(RACSi...

  • ReactiveCocoa

    1.ReactiveCocoa常见操作方法介绍。 1.1 ReactiveCocoa操作须知所有的信号(RACSi...

  • ReactiveCocoa实战

    1.ReactiveCocoa常见操作方法介绍。 1.1 ReactiveCocoa操作须知所有的信号(RACSi...

  • ReactiveCocoa(FRP)-进阶篇

    1.ReactiveCocoa常见操作方法介绍1.1 ReactiveCocoa操作须知所有的信号(RACSign...

网友评论

      本文标题:ReactiveCocoa操作方法-重复

      本文链接:https://www.haomeiwen.com/subject/evbusttx.html