java自定义一个timeout,Timeout操作符 RxJava 学习笔记<二十一>

timeout用于检测在给定时间内observables没有及时响应。如果指定的时间量没有发出任何项目,则超时会使observables失败并出现TimeoutException。

我们将从debounce的示例中重用我们的observable来演示超时。

c43f00f94101d32ff3721391a3df0675.png

输出:

d54b563d1b57058d6e304d5d3042d50b.png

只要值不超过200ms,就会输出。一旦值超过到达值,就会推送错误。

您可以提供后备observable而不是失败。发生超时时,生成的observable将切换到备胎。从那时起,原始的可观察者将被忽略,即使它恢复了。

ae5394b9aad4c1b6f5c2c5d41e077ae4.png

a485530832d206300702e68435d9b40b.png

输出:

d6eaeba18318078701abee8024c353b7.png   您还可以指定每个项目的超时窗口。在这种情况下,您提供了一个为每个值创建一个observable的函数。当observable终止时,这是超时的信号。如果在此之前没有发出任何值,则会触发超时。

fd575d3d6c8f201e876cf1eb182b317d.png

以下是使用此重载实现的一个示例:

d4ebb55101c64a16dbfcc270d98929ca.png

输出:

f2310dc55e340c3efedb19b2cd526f7a.png

同样,您可以提供observable的后备。输出与前两个示例相同。

原文:https://github.com/Froussios/Intro-To-RxJava/blob/master/Part%203%20-%20Taming%20the%20sequence/5.%20Time-shifted%20sequences.md

下节继续!

有什么讨论的内容,可以加我公众号:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值