subscribe

更新时间:2023-01-04 16:24:49 阅读: 评论:0


2023年1月4日发(作者:jubilee)

使⽤doOnSubscribe和doFinally使Rxjava代码更整洁

使⽤Rxjava的很多时候都会遵循相同的模式,⼀个常见的⽰例就是我们在应⽤程序中加载⽹络数据,⼏乎所有情况下的代码都是这样的:

显⽰加载状态

加载数据

当数据已经加载完毕的时候需要隐藏加载状态和更新UI

如果出现了错误,隐藏加载状态然后显⽰⼀些错误信息

下⾯就是我们经常使⽤的代码:

publicvoidonViewCreated(Viewview){

adingIndicator();

loadFromServer()

.compo(applySchedulers())

.subscribe(data->{

adingIndicator();

ta(data);

},error->{

adingIndicator();

ror(error);

});

loadData();

}

你可能已经发现了,我们经常会写这些重复的代码,⽐如说

adingIndicator()

,你可能会觉得这些不值得⼀提,但是有时候我们会遇到更加

复杂的逻辑,所以我们要尽量的简化这些代码:

这⾥要介绍两个⽅便的操作符,使⽤它们会是代码更加清洁,

doOnSubscribe

doFinally

(这是RxJava2的操作符),现在看⼀下它们能做什么:

doOnSubscribe-修改源,以便从订阅者订阅是调⽤给定的操作

doFinally-在onError和或onCompleted后调⽤指定的操作,或由下游处理。

第⼀个允许我们在观察着订阅时⽴即执⾏动作,第⼆个语序我们在调⽤完成时⽴即执⾏动作,不管他是否成功。

在上⾯的⽰例中使⽤这两个操作符:

publicvoidonViewCreated(Viewview){

loadFromServer()

.compo(applySchedulers)

.doOnSubscribe(_->adingIndicator())

.doFinally(()->adingIndicator())

.subscribe(data->{

ta(data);

},error->{

ror(error);

});

loadData();

}

⼩的改变,但是却整理我们代码的风格,设置这些代码现在就可以作为链的⼀部分来执⾏,订阅处理程序只处理与他们直接相关的内容。

本文发布于:2023-01-04 16:24:49,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/91647.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:sole什么意思
下一篇:nato
标签:subscribe
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图