问题标签 [subject-observer]

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 投票
1 回答
4132 浏览

c# - 使用 IObserver/IObservable 实现观察者和主题

我想创建一个可以用来表示动态计算值的类,而另一个表示值的类可以是这些动态计算值的源(主题)。目标是当主题发生变化时,计算值会自动更新。

在我看来,使用 IObservable/IObserver 是要走的路。不幸的是,我不能使用 Reactive Extensions 库,所以我不得不从头开始实现主题/观察者模式。

废话不多说,这是我的课程:

我的实现主要来自:http: //msdn.microsoft.com/en-us/library/dd990377.aspx

那么这样做的“正确”方法是什么?注意:我不关心 LINQ 或多线程甚至性能。我只是希望它简单易懂。

0 投票
2 回答
2123 浏览

java - 用多态参数覆盖方法

我有一个Subject具有以下方法的接口(称为):

然后我有另一个扩展Subject名为TimerSubject. 这个接口是一个更具体的版本Subject,用于计时。它还有一些其他的杂项方法。

还有两个对应的接口Observer, 和TimerObserverTimerObserver延伸Observer

当一个类实现TimerSubject时,它必须重写接口中的addObserver()方法Subject。看起来像这样:

问题是,我需要接受 aTimerObserver而不是 的方法Observer,它看起来像这样:

这不起作用,因为参数与被覆盖的方法的参数不同。

那么有没有办法用多态的参数覆盖一个方法呢?

0 投票
2 回答
494 浏览

java - 通用观察者 - 铸造问题

我正在尝试制作一个通用的观察者模式,以 headFirst 设计模式示例为蓝本。我在标有 ??? 的行出现错误 以下。

错误消息说:主题类型中的方法 registerObserver(Observer) 不适用于参数 (CurrentConditionsDisplay)

接口1

接口 2

接口 3

天气数据类

测试员类

0 投票
3 回答
42288 浏览

java - PublishSubject 和 BehaviorSubject 如何退订?

subjects包下,您有类似的类PublishSubjectBehaviorSubject我想可以将其描述为一些可用的示例Observables

如何退订这些主题?没有unsubscribe方法并且调用onCompleted完全结束了 Observable 对吗?

0 投票
1 回答
77 浏览

c++ - 通用主题类观察者模式

我一直在解决以下问题。创建一个通用的主题类(指观察者模式),使其可以接受任何数据类型(原始类型或用户类型)。注册、删除和通知功能也需要可定制。例如,我们有一个 WeatherStation 类,它通知观察者数据类型为“int”。它在注册和删除观察者时创建了一个数据库条目。

另一个示例(未显示)是 BroadcastHandler,它通知观察者有关证券交易所的报价。它在注册和删除观察者的文件中进行条目。

我编写了以下代码来实现它。

我从链接器收到以下错误

0 投票
1 回答
59 浏览

java - 创建主题

我正在实现一个字节消息反序列化器,它将在调度程序接口上调度反序列化消息并返回所有Throwable抛出的 observable,以便客户端代码可以处理错误。

这样做的方法原型的草图:

现在最近我很熟悉Subject<T, R>,它非常适合这里,例如

但是没有任何方便的方法create()可以轻松地委托给观察者和可观察者。所有具体实现都T与统一R,所以我无法使用其中之一。

所以我的具体问题是:有没有一种方法可以实例化一个合适Subject<byte[], Throwable>的委托给一个Observerand Observable?有没有其他方法可以创建这样的 aSubject而不必实现(在必须手动委托每个实现的方法的意义上)整个Subject,ObservableObserver

0 投票
1 回答
1383 浏览

rx-java - RxJava - 单个 Observable 立即执行 - 为什么?

我有一个非常简单的 RXJava 发射器。它实际上是一个 publishSubject,但它的工作是将整数转换为字符串,然后在订阅时更新 UI 元素。代码如下所示:

我想要发生的事情:订阅只有在我调用integerToStringEmitter.subscribe(); 时才开始;

当前发生了什么:一旦我启动程序,就会调用 onNext 并且 UI 元素被设置为#4。为什么?我需要对这件事有更多的控制权,所以如果我没有订阅它,它就不会立即执行。请帮忙解决。

0 投票
1 回答
95 浏览

angular - 为什么主题的 onNext 未解决?

在 Angular2 中。当我在主题上调用 onNext 时,它显示未解决。rx 已正确导入。

0 投票
1 回答
577 浏览

angular - RxJS .next() 在 Angular 2 应用程序中静默失败

我正在尝试编写一个基本的 angular 2 应用程序,它使用新版本的 RxJS ->“rxjs”:“5.0.0-beta.6”。

我已按照说明书中的说明尝试制作通知服务,我的应用程序的任何部分都可以调用它来显示消息。

我遇到的问题是,当我调用.next()添加下一个通知时,订阅不会收到此通知。this.displayMessage(notification);调用newNotification. _ 我将 BehaviourSubject 类型添加到我的代码中(与教程中使用的主题相反),发现初始值已被订阅获取 -this.displayMessage(notification);在初始化时成功调用。这让我觉得这与我在NotificationService课堂上调用 .next() 的方式/位置有关。

以下是相关类:

通知服务:

消息组件:

如果有人对其他事情有任何想法可以尝试,那就太好了。非常感谢

编辑:这里的完整回购: https ://github.com/sandwichsudo/sentry-material/tree/notifications/src/app

0 投票
0 回答
156 浏览

javascript - Rx-js。主题中的缓冲、缓存等

我有一个包含 WebSocket 的主题(https://github.com/Reactive-Extensions/RxJS-DOM/blob/master/doc/operators/fromwebsocket.md),我想缓冲 WebSocket 接收到的消息。我查看了https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/buffer.md但使用了 observable 而不是主题。此外,我读过主题可用于使用缓冲或缓存“您可以使用主题来实现具有缓存、缓冲和时移的自定义 observable”(https://xgrommx.github.io/rx-book/content /getting_started_with_rxjs/subjects.html),我如何使用主题和观察者来实现这类事情(缓冲,缓存,......)。

我对 Rx 的概念有点迷茫,它们比 akka-streams 更难!!

谢谢,