当前位置:  开发笔记 > 编程语言 > 正文

subscribeOn和observeOn只能由最终订阅者调用吗?

如何解决《subscribeOn和observeOn只能由最终订阅者调用吗?》经验,为你挑选了0个好方法。

Intro to Rx的调度和线程部分说明了这一点

SubscribeOn和ObserveOn的使用只能由最终订阅者调用

它还说,在UI应用程序中,表示层(通常是最终订阅者)应该是调用这些方法的表示层.

我想知道这个建议是否可靠,因为我看到一些不方便的情况:

    对于初学者,我不认为表示层应该决定应该订阅来自数据层的Observable的位置.在我看来,如果数据来自数据库,REST API或内存,表示层应该不知道.因此,subscribeOn()在返回Observable之前调用数据层很方便,方便地传递IO Scheduler或直接调度程序.

    如果表示层从某个服务或用例(从数据层获取它)获得Observable,并且该服务决定它需要在某个计算Scheduler中处理流,那么表示层为什么要关心这个呢?

    那个最初来自UI的流怎么样,所以需要在UI线程中订阅.然后它将被发送到一些服务来做一些工作,最后回到表示层,以便在UI线程中观察.这将要求UI流是subscribeOn()UI调度程序,然后是observeOn()其他调度程序,最后observeOn()是UI调度程序.在这种情况下,只能在最终订阅者中调用subscribeOn(),observeOn()这意味着只能在UI线程中处理该流.

我有理由牺牲应用程序的体系结构并忽略Rx通过最终订阅者调用这两种方法来轻松切换线程的能力吗?

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有