在Android上理解RX哲学(RxJava,RxJS,Rx ......)的问题

时间:2017-01-28 23:47:14

标签: android rx-java

这是一个使用反应式编程的例子(例如RxJava)

  1. 有一个User对象,其中包含一些属性(name,surname) - observable
  2. 活动包含2个片段,均显示当前用户名 - 订阅者
  3. 用户更改(名称更改)
  4. 如果观察到的数据源发生变化(如果两个片段都订阅了同一个用户对象),显示的名称是否会自动更改,这是正确的假设吗?

    从我现在看到的所有关于rxjava和android的例子都集中在异步调用和处理由订阅触发/调用的返回数据流。如果被观察的来源发生变化,应该/将会发生什么?订阅者是否应该被触发?

    从这里采取: https://en.wikipedia.org/wiki/Reactive_programming

      

    例如,在命令式编程设置中,a:= b + c意味着a在评估表达式的瞬间被赋予b + c的结果,之后,b和c的值可以是改变了对a的值没有影响。 然而,在反应式编程中,只要b和c的值发生变化,a的值就会自动更新,而程序不再执行a:= b + c。

    是否有任何关于如何使用维基百科文章中描述的rxJava设置行为的示例?

1 个答案:

答案 0 :(得分:2)

如果您创建了在User对象上共享更新的observable(提示:subject/operator),并且两个片段都获得了用户的相同可观察量并订阅了它,那么他们将获得用户的新版本。

至于维基百科的例子,假设你将b和c表示为可观察的,可以使用combineLatest运算符轻松完成:

IPC_NOWAIT