问题标签 [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.
c# - 使用 IObserver/IObservable 实现观察者和主题
我想创建一个可以用来表示动态计算值的类,而另一个表示值的类可以是这些动态计算值的源(主题)。目标是当主题发生变化时,计算值会自动更新。
在我看来,使用 IObservable/IObserver 是要走的路。不幸的是,我不能使用 Reactive Extensions 库,所以我不得不从头开始实现主题/观察者模式。
废话不多说,这是我的课程:
我的实现主要来自:http: //msdn.microsoft.com/en-us/library/dd990377.aspx。
那么这样做的“正确”方法是什么?注意:我不关心 LINQ 或多线程甚至性能。我只是希望它简单易懂。
java - 用多态参数覆盖方法
我有一个Subject
具有以下方法的接口(称为):
然后我有另一个扩展Subject
名为TimerSubject
. 这个接口是一个更具体的版本Subject
,用于计时。它还有一些其他的杂项方法。
还有两个对应的接口Observer
, 和TimerObserver
。TimerObserver
延伸Observer
。
当一个类实现TimerSubject
时,它必须重写接口中的addObserver()
方法Subject
。看起来像这样:
问题是,我需要接受 aTimerObserver
而不是 的方法Observer
,它看起来像这样:
这不起作用,因为参数与被覆盖的方法的参数不同。
那么有没有办法用多态的参数覆盖一个方法呢?
java - 通用观察者 - 铸造问题
我正在尝试制作一个通用的观察者模式,以 headFirst 设计模式示例为蓝本。我在标有 ??? 的行出现错误 以下。
错误消息说:主题类型中的方法 registerObserver(Observer) 不适用于参数 (CurrentConditionsDisplay)
接口1
接口 2
接口 3
天气数据类
测试员类
java - PublishSubject 和 BehaviorSubject 如何退订?
在subjects
包下,您有类似的类PublishSubject
,BehaviorSubject
我想可以将其描述为一些可用的示例Observables
。
如何退订这些主题?没有unsubscribe
方法并且调用onCompleted
完全结束了 Observable 对吗?
c++ - 通用主题类观察者模式
我一直在解决以下问题。创建一个通用的主题类(指观察者模式),使其可以接受任何数据类型(原始类型或用户类型)。注册、删除和通知功能也需要可定制。例如,我们有一个 WeatherStation 类,它通知观察者数据类型为“int”。它在注册和删除观察者时创建了一个数据库条目。
另一个示例(未显示)是 BroadcastHandler,它通知观察者有关证券交易所的报价。它在注册和删除观察者的文件中进行条目。
我编写了以下代码来实现它。
我从链接器收到以下错误
java - 创建主题
我正在实现一个字节消息反序列化器,它将在调度程序接口上调度反序列化消息并返回所有Throwable
抛出的 observable,以便客户端代码可以处理错误。
这样做的方法原型的草图:
现在最近我很熟悉Subject<T, R>
,它非常适合这里,例如
但是没有任何方便的方法create()
可以轻松地委托给观察者和可观察者。所有具体实现都T
与统一R
,所以我无法使用其中之一。
所以我的具体问题是:有没有一种方法可以实例化一个合适Subject<byte[], Throwable>
的委托给一个Observer
and Observable
?有没有其他方法可以创建这样的 aSubject
而不必实现(在必须手动委托每个实现的方法的意义上)整个Subject
,Observable
和Observer
?
rx-java - RxJava - 单个 Observable 立即执行 - 为什么?
我有一个非常简单的 RXJava 发射器。它实际上是一个 publishSubject,但它的工作是将整数转换为字符串,然后在订阅时更新 UI 元素。代码如下所示:
我想要发生的事情:订阅只有在我调用integerToStringEmitter.subscribe(); 时才开始;
当前发生了什么:一旦我启动程序,就会调用 onNext 并且 UI 元素被设置为#4。为什么?我需要对这件事有更多的控制权,所以如果我没有订阅它,它就不会立即执行。请帮忙解决。
angular - 为什么主题的 onNext 未解决?
在 Angular2 中。当我在主题上调用 onNext 时,它显示未解决。rx 已正确导入。
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
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 更难!!
谢谢,