- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
至少在移动应用程序中,BehaviorSubject
被频繁使用,为属性建模——它有一个当前值,可以随时查询并观察。
有时它只想转换 BehaviorSubject
而无需订阅它。例如。如果有类,它充当几个转换后的 BehaviorSubject
和潜在订阅者之间的中间层。
我在这里遇到的问题,至少在 RxJava2 中,是在 BehaviorSubject
上应用运算符总是返回 Observable
。所以我的中间层不能再提供 BehaviorSubject
的 api。
一个可能的解决方案是创建新的 BehaviorSubject
并将它们订阅到原始的 BehaviorSubject
但这总体上似乎是个坏主意,也许我不想订阅这一刻但仅按需,即当我的中间层的用户实际需要这些主题时?
在我的例子中,上下文是一个具有 MVVM 模式的 Android 应用程序,其中 View 模型将 BehaviorSubject
暴露给 View ,这些 View 大部分派(dispatch)生自另一个 BehaviorSubject
在应用程序中。我目前在 View 模型中订阅,但我想改进这一点,因为 View 模型并不是真正的消费者,不应该订阅任何东西——当 View 实际需要他们的东西时,应该激活主题。
不,我不能在 View 模型中只使用 Observable
,因为有单元测试和其他一些检查某个点值的调用,这不能仅使用 可观察的
。
我的主要问题是为什么不能简单地将 BehaviorSubject
转换为另一个 BehaviorSubject
。还有一个好处是,在所描述的上下文中使用 BehaviorSubject
的推荐方法是什么。
最佳答案
它不会正确组合,运算符是避免方法调度问题的 final方法。此外,如果您 onNext 转换后的主题,同时也 onNext 原始主题,您将为终端消费者创建多个入口点,并且可能违反 Observable 契约。
但是您可以将多个主题合并在一起,每个主题都由各自的事件驱动,最终消费者将正确接收事件。
And no I can't use only Observable in the view model as there are unit tests and some other calls that check for the value at a point, which can't be done using only Observable.
您是否尝试过 blockingFirst()
从以那些原始 BehaviorSubject
开始的链中获取当前值?
否则,我不清楚你的设计,因为它过于关注主题而不是某些事件的单一发起者。
关于android - 为什么不能将 BehaviorSubject 映射到另一个 BehaviorSubject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45650120/
我有一个 rxjs@6 BehaviorSubject source$ ,我想从 source$ 获取子值 const source$ = new BehaviorSubject(someValu
场景我有一个 Territories 列表,我想从服务器获取每个 Territory 中的所有 Items。因此,我决定使用 BehaviorSubject 来尝试一下。我不知道我是不是“疯了”。这就
至少在移动应用程序中,BehaviorSubject 被频繁使用,为属性建模——它有一个当前值,可以随时查询并观察。 有时它只想转换 BehaviorSubject 而无需订阅它。例如。如果有类,它充
我在使用 Angular 服务时遇到了一个由 BehaviorSubject 引起的错误。 错误 Module '"ng5/node_modules/rxjs/BehaviorSubject"' ha
我正在使用 Angular 2 和 RxJS 5。 这两者有什么区别吗: 应该首先使用哪个?谢谢 isOpen$ = new BehaviorSubject(true); 和 isOpen$ = Be
我正在查看可观察对象的接口(interface),发现您可以将实现 PartialObserver 的任何内容传递给订阅函数。所以我用 BehaviorSubject 做到了。 像这样(一) sour
我的其中一个组件中有这个: public booleanSubject: BehaviorSubject = new BehaviorSubject(false); 当我添加 "strictFunct
您好,我有一个具有简单类型 int 的 BehaviorSubject,我将值 5 添加到它,然后添加另一个值 5。流监听器向我发送了两个事件。如果值等于最后一个值,如何强制检查值并且不发送事件。示例
在我们的单页应用程序中,我们开发了一个集中式存储类,该类使用 RxJS 行为主体来处理应用程序的状态及其所有变化。我们应用程序中的几个组件正在订阅我们商店的行为主题,以便接收对当前应用程序状态的任何更
我有一个 Angular 服务,它有一个名为 must_checkout 的 bool 属性。我的服务还包含一个名为 observable_must_checkout 的属性,它是一个调查 must_
我有一个 BehaviorSubject我希望能够filter ,但要保持新订阅者在订阅时始终获得一个值的行为主题式质量,即使最后发出的值被过滤掉。有没有一种简洁的方法可以使用 rxjs 的内置函数来
我有一个 BehaviorSubject我想重置 - 我的意思是我希望最新的值不可用,就像它刚刚创建一样。 我似乎没有看到可以执行此操作的 API,但我想还有另一种方法可以实现相同的结果吗? 我想要的
我使用 RxJS 中的 BehaviourSubject: private rights = new BehaviorSubject>([]); updateRights(rights: Array)
我几乎已经完成了 android,但对 java 8 还是陌生的。我制作了一个 BehaviourSubject>。 我在上面放置了一个可观察对象。在 Presenter 类中,我将 Behaviou
在我的 Angular 应用程序中 我多次尝试使用 BehaviorSubject 获取值,以了解值何时更改或接收。我无法在加载组件之前获取值。 通过此链接,您可以查看返回的内容: https://d
我有一个函数应该返回一个BehaviorSubject。该主题旨在返回 Profile 的最新版本 (user)Profile 只是一个包含对三个成员的引用的 POJO: - 用户, - 该用户的 M
通缉行为: subject = BehaviorSubject.create(1); subject.subscribe(number -> print(number), error -> print
我是 RxJava 的新手,我选择使用它是因为我认为它非常适合我的用例。 我有一些 Integer 值,我想在无限的时间段内观察。每当这些值之一发生变化(即一个事件)时,我希望在另一个线程上调用它的所
我有一个 EvaluateHistoryItem[] 类型的 BehaviourSubject history$。在 uploadFile 方法中,我用逗号分割上传的 .txt 文件,然后将它们推送到
我是 Angular 的新手,不知道如何使用异步调用来更新响应式表单。 我有一个基于对象模型的 react 形式。表单中的任何更改都会触发 HTTP 请求,该请求可能会发回对象的更新版本作为响应。我需
我是一名优秀的程序员,十分优秀!