gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 13:10:18 25 4
gpt4 key购买 nike

这里是一个使用响应式(Reactive)编程的案例(例如使用 RxJava)

  1. 有一个具有一些属性(姓名、姓氏)的 User 对象 - 可观察
  2. 一个 Activity 包含 2 个 fragment ,都显示当前用户名 - 订阅者
  3. 用户变更(姓名变更)

如果观察到的数据源发生变化(如果两个 fragment 都订阅了同一个用户对象),显示名称应该自动更改的假设是否正确?

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

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

For example, in an imperative programming setting, a:=b+c would mean that a is being assigned the result of b+c in the instant the expression is evaluated, and later, the values of b and c can be changed with no effect on the value of a. However, in reactive programming, the value of a would be automatically updated whenever the values of b and c change, without the program executing the sentence a:=b+c again.

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

最佳答案

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

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

Subject<Integer> sb;
Subject<Integer> sc;

Observable.combineLatest(sb, sc, (b, c) -> b + c)
.subscribe(outcome ->
System.out.println("Always up to date value here: " + outcome)
);

关于android - 在 Android 上理解 RX 哲学(RxJava、RxJS、Rx...)的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com