rxjava2 多长时间响应一次

发布网友

我来回答

1个回答

热心网友

才学RxJava的时候还是挺困惑的,感觉有特别多的对『时间』的操作符,比如timer()、interval()、delay()、defer()等等……总之功能太强大,直接吓跑了一群初学者。身边有朋友这样跟我说:RxJava为了省点代码,把逻辑弄这么复杂,看着都晕了,我宁愿多写点if-else我只能回复:用RxJava逻辑肯定是变简单了,一旦用上手了,再也离不开了。现在让我写个Thread+Handler我都觉得麻烦。timer()这里说的是新版本的timer(),而老版本的timer()已经跟interval()合并了。timer():创建一个Observable,它在一个给定的延迟后发射一个特殊的值这里需要注意,定义里面说的是『一个』,所以有别于之前用的TimerTask。timer()只是用来创建一个Observable,并延迟发送一次的操作符,timer()并不会按周期执行。interval()interval():创建一个按固定时间间隔发射整数序列的Observable这个比较好理解,interval()也是用来创建Observable的,并且也可以延迟发送。但interval()是按周期执行的,所以可以这么认为:interval()是一个可以指定线程的TimerTask(威力加强版……)delay()delay():延迟一段指定的时间再发送来自Observable的发送结果语文没学好肯定读不懂这一段,我才看到这句话的时候也懵了……其实delay()的常规使用跟timer()一致,那区别在哪呢?delay()是用于流中的操作,跟map()、flatMap()的级别是一样的。而timer()是用于创建Observable,跟just()、from()的级别是一样的。总结timer():用于创建Observable,延迟发送一次。interval():用于创建Observable,跟TimerTask类似,用于周期性发送。delay():用于事件流中,可以延迟发送事件流中的某一次发送。网络连接失败的处理看过最前面那篇文章的应该很清楚retryWhen()是什么了。我再来总结一下,retryWhen()的直面意思就是:发生错误了,接下来该做什么。retryWhen()是RxJava的一种错误处理机制,当遇到错误时,将错误传递给另一个Observable来决定是否要重新给订阅这个Observable

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com