问题标签 [observable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4180 浏览

system.reactive - 为什么 Rx Observable.Subscribe 会阻塞我的线程?

你好,我已经尝试了 101 个 Rx 示例之一:

我不明白为什么“按任意键取消订阅”这一行从不显示。我的理解是订阅是异步的,您订阅它并立即返回。我错过了什么导致我的主线程阻塞?

0 投票
5 回答
11411 浏览

javascript - 如何取消/恢复对可观察模型的更改(或用未触及的副本替换数组中的模型)

我有一个带有可观察变量的 observableArray 对象的 viewModel。

我的模板使用编辑按钮显示数据,该按钮隐藏显示元素并显示绑定值的输入元素。您可以开始编辑数据,然后您可以选择取消。我希望这个取消恢复到对象的未更改版本。

我尝试通过执行以下操作克隆对象:

或者

但是 viewModel.tempContact 会在联系后立即被修改。

KnockoutJS 中是否有内置的东西来处理这种情况,或者我最好只创建一个具有完全相同详细信息的新联系人,并在取消时用新联系人替换修改后的联系人?

任何意见是极大的赞赏。谢谢!

0 投票
4 回答
12531 浏览

design-patterns - EventListener 是 Observable 吗?

我目前正在学习有关设计模式的课程,并且想知道 an 是否EventListenerObservable

我真的看不出它们之间有什么区别,因为它们都有一个订阅者列表,并在某些事情发生变化时通知这些订阅者。

0 投票
4 回答
3785 浏览

wpf - WPF:绑定到(可观察的)字典

我在我的项目中使用这个 ObservableCollection-Class: Link
I want to Bind a RibbonMenuButton to a ObservableDictionary<string,bool>:

但是我得到了例外,因为内部 IDictionary-KeyValuePairs 的值属性是只读的。任何想法如何解决这个问题?

我想到了类似的东西:

但这不起作用,因为 {Binding} 中的 {Binding} ...

0 投票
3 回答
373 浏览

c# - 我可以在 WPF 中捕获对可观察结构成员的更新吗?

我有一个在 COM 库中定义的结构。在我的 ViewModel 中,我创建了一个可观察的实例,并希望将结构的每个成员绑定到视图中的不同控件。ConfigStaticDataDetails 变量通过 COM 中的委托进行更新。

有没有办法捕捉结构成员的更新,以便我的视图反映更新?

结构的一部分:

我的:变量:

在 XAML 中:

我尝试了不同的方法,但这是我当前的代码(不起作用)。

0 投票
3 回答
2099 浏览

.net - Observable.Timer() 会导致内存泄漏吗?

最近我注意到我的代码中有一个使用 Reactive Extensions 的小错误。我订阅了 Timer,但我从未处理过我的订阅。这导致了内存泄漏。

我创建了突出显示这种危险的片段:

这是正常行为吗?

当订阅者与应用程序的其余部分失去连接时,调度程序不应该持有对计时器的弱引用以使其垃圾收集吗?

0 投票
1 回答
410 浏览

java - 是否可以实现将线程作为观察者的可观察模式,如果是这样,这是个好主意吗?

我正在用java开发一个系统,它将从数据库中检索等待发送的电子邮件,并将它们加载到一个临时缓冲区中。每当在缓冲区中检测到电子邮件时,想法是使用观察者/可观察模式来通知 smtp 服务器。关键是让每个服务器在不同的线程上运行,并且所有线程都在观察缓冲区。如果有人可以帮助我了解如何实施,我将不胜感激。我之前已经使用过观察者模式,但从未使用过多线程。

希望有人可以帮助我,因为我在互联网上搜索了很多,但我找不到任何答案

0 投票
3 回答
7772 浏览

java - 一个 observable 的多个 observable 事件

我试图绕过在解释 update() 调用时涉及的丑陋条件转换,该调用将要通知其观察者多种类型的事件。另外,我不希望将标志传递给 notifyObservers()/update() 方法。

我不希望观察者必须轮询可观察对象以找出发生了什么变化,我希望通过 update() 方法(或类似方法)将这些新数据提供给观察者。

我有一个解决方案的想法。我为每种类型的通知实例化一个可观察对象。例如: observable 是一个表示硬件设备的对象,它将包含表示其状态的 observable:

这样,观察者不需要进行任何类型的查询或条件转换,因为一个观察者,即每个通知类型可以使用一个覆盖的 update() 方法。

在经历了很多挫折之后,这是我能想到的最优雅的解决方案,但是我有一种可怕的感觉,我错过了如何正确使用 Observers/Observables 的要点。

我对该解决方案的主要问题是:

  1. 它仍然涉及演员(至少它不是有条件的)
  2. 由于可观察对象需要是可观察的,因此它们必须是公共成员。虽然这确实允许观察者调用 addObservable(),但它也允许他们调用 notifyObservers()。

我在做正确的事吗?

谢谢

0 投票
1 回答
2179 浏览

c# - 在自定义用户控件中绑定 ObservableCollection

我有一个在包含自定义类的用户控件中创建的 ObservableCollection。自定义类包含一些字符串和布尔值,没什么特别的。

在自定义控件的 Xaml 中,我添加了自定义图例控件。在自定义图例中,我有另一个 ObservableCollection,ItemsControl 是数据绑定到的。

在 legend.xaml 中:

在 legend.xaml.cs 中:

在主用户控件的构造函数中,我将图例中的 ObservableCollection 设置为等于主用户控件中的 ObservableCollection。

即使两个 ObservableCollections 始终包含相同的数据(它们现在是同一个对象),ItemsControl 也不会更新或显示任何内容。但是,如果我稍后在代码中将 ObservableCollections 设置为相等,比如单击按钮,那么它就可以正常工作。

该按钮只调用“setItemsSource”函数。

关于为什么我不能在启动时将它们设置为相等的任何想法?

0 投票
2 回答
185 浏览

c# - Rx 中的“独占”和“默认”订阅模式

我有一个可观察的事件对象序列和一些处理特定类型事件的观察者。我需要完成以下场景:

  1. 某些事件类型需要由匹配条件的第一个观察者处理(例如 observable.SubscribeExclusively(x=>{}) 并且对其他事件类型变得“不可观察”。
  2. 如果没有订阅,请设置一些默认处理程序(例如 observable.SubscribeIfNoSubscriptions(x=>{})),以便不会丢失任何项目(例如,此处理程序可以将项目保存到数据库以便稍后处理)。

有没有办法用 Rx 处理这些情况?