问题标签 [event-bus]

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 投票
3 回答
816 浏览

gwt - 如何在 GWTP 中将 EventBus 用于非 Presenter 类?

我正在使用 GWTP 平台和 eClipse 来构建 webapp。在 Eclipse 中,创建 Presenter 时,会创建 3 个文件(例如:SearchPresenter.java、SearchView.java 和 SearchView.ui.xml):

要使用 eventBus,我们只需使用 eclipse 创建 EventBus 文件,例如 MyEvent.java,然后使用以下代码在 SearchPresenter 中调用 eventBus:

现在假设我有一个非演示者类public class SearchDialogBox extends DialogBox,那么我的问题是如何在 SearchDialogBox 中使用 MyEvent?如何在 SearchDialogBox 中获取事件总线()?

0 投票
1 回答
3351 浏览

java - 从 Singleton 触发 GWT SimpleEventBus 事件时出现 Nullpointer[Umbrella] 异常

我在这个 GWT SimpleEventbus 的简单实现上被困了好几个小时。

这个设置有什么问题吗?这可能是什么原因?

我正在使用 web.binderyEventbus

Eventbus 在我的入口点类中初始化。

然后将其注入到 Singleton LoadData 和 MainView 中(UIBinder 类没有 MVP)。

initLoadData 基本上是构造函数的别名,只是它不返回任何内容。

像这样将 Eventbus 注入 MainView。

然后注册处理程序。

在方法结束时,我让它调用 LoadData 中的一个方法。

LoadData.java中的 loadIndex 方法

EntriesReceiveEvent.java

它是处理程序 EntriesReceiveEventHandler.java

最后是例外。

我认为 Eventbus 可能不一样,因为我不知道他们是否都在与同一个 Eventbus 交谈。然而,这个网站证明我的担心是错误的。

附带问题:在这种情况下,您认为 Singleton好吗?这是一个相当小的项目,处理所有 RPC 请求的 LoadData 需要全局可用。

感谢您的任何帮助!

0 投票
3 回答
624 浏览

events - GwtEvent 没有被调度

我有一个使用 EventBus 调度应用程序范围事件的应用程序。出于某种原因,如果我调用一个事件,然后尝试在触发第二个事件之前立即注册处理程序,它不会被调度。有没有其他方法可以在 event 上动态注册处理程序?请看下面的代码:

我的条目.java

MyEvent1.java

MyEvent2.java

0 投票
1 回答
247 浏览

gwt - 如何编写测试以跟踪事件总线中的事件流?

详细描述: 在我们的带有 mvp4g 应用程序的 gwt 中,我们在 eventbus 中有相当复杂的事件流。像 LOGIN 这样的一个事件会产生多个其他事件作为演示者/处理程序的反应。目前,我们很难理解事件是如何相互关联的,即哪些事件必须遵循这个特定的事件。
我们对演示者和视图进行了测试,但是我们缺乏能够清楚地显示/建模事件流的测试,最好不使用真实的视图和服务。

简短描述: 应开发对 eventBus(?) 的新测试,该测试应清楚地描述和测试事件流。

我几乎没有什么鲁莽的想法,但它们听起来都不令人满意:

  1. 编写 mvp4g eventbus 的自定义实现(可能很难看)并且:

    • 使用真正的演示者
    • 使用模拟(?)视图
    • 模拟服务
    • 验证所有产生的服务调用
    • 为什么不酷(a)在这种情况下,测试不会直接验证产生的事件,而只会验证那些有服务的事件。(b) EventBus 实现看起来相当可怕——它必须为每个演示者创建模拟服务和视图
  2. 找到一种方法来使用一些神奇的 mvp4g 机制在测试和模拟 vie、服务中创建 eventBus。

    • 为什么不酷:与上一个相同 - 只能通过服务进行间接验证,我找不到如何手动创建 eventBus 并解决 GIN、GWT 模块间依赖关系等所有问题。我想没有简单的方法可以做到这一点。

在测试中跟踪事件树的问题有什么通用的解决方案吗?我猜我不是第一个关注复杂事件总线事件流的人。

0 投票
1 回答
357 浏览

scala - Akka Event Bus:在频道中查找未使用的事件?

如果一个 Actor 启动并订阅了 Akka 事件总线中的一个通道,那么这个 Actor 有没有办法消费已经发送到该通道但没有被任何其他 Actor 消费的事件?

换句话说,我希望演员“收集邮件”。也许事件总线对此是错误的,我不知道。

0 投票
1 回答
598 浏览

events - 如何让父组件监听,子组件在gwt中使用eventbus触发的事件

我有一个带有几个组件的自定义面板,例如。一个按钮和一个文本框。

单击按钮后,我希望同时也是父面板的自定义面板接收事件并决定要做什么,例如在文本框上调用 setText 。

是否可以使用 eventbus 来实现这一点?

这意味着子组件不需要处理它们的事件然后中继它。

0 投票
4 回答
13330 浏览

event-handling - EventBus/PubSub 与(响应式扩展)RX 在单线程应用程序中的代码清晰度

目前,我正在使用带有 Scala(和 JavaFX)的 EventBus/ PubSub架构/模式来实现一个简单的笔记组织应用程序(有点像带有一些附加思维导图功能的 Evernote 客户端),我不得不说我真的很喜欢 EventBus观察者模式。

以下是一些 EventBus 库:

https://code.google.com/p/guava-libraries/wiki/EventBusExplained

http://eventbus.org(目前似乎已关闭)这是我在实施中使用的。

http://greenrobot.github.io/EventBus/

这是 EventBus 库的比较:http ://codeblock.engio.net/37/

EventBus 与发布-订阅模式有关。

然而 !

最近,我参加了Coursera 的 Reactive 课程,并开始怀疑使用RXJava代替 EventBus 是否会在单线程应用程序中进一步简化事件处理代码?

我想问一下使用这两种技术(某种事件总线库某种​​形式的响应式扩展(RX))编程的人的经验:使用 RX 解决事件处理复杂性是否比使用给定的事件总线架构更容易没有必要使用多个线程

我之所以这么问是因为我在 Coursera 上的反应式讲座中听说RX导致的代码比使用观察者模式更简洁(即没有“回调地狱”),但是我没有发现 EventBus 架构与RXJava之间的任何比较。所以很明显,EventBus 和 RXJava 都比观察者模式更好,但 在代码清晰度和可维护性方面哪个在单线程应用程序中更好?

如果我理解正确的话, RXJava的主要卖点是如果存在阻塞操作(例如等待服务器响应),它可以用来生成响应式应用程序。

但我根本不关心异步性,我关心的只是在单线程应用程序中保持代码干净、清晰且易于推理。

在这种情况下,使用 RXJava 是否比使用 EventBus 更好?

我认为 EventBus 将是一个更简单和更清洁的解决方案,我看不出有任何理由为什么我应该将 RXJava 用于单线程应用程序以支持简单的 EventBus 架构。

但我可能错了!

如果我错了,请纠正我,并解释为什么在没有执行阻塞操作的单线程应用程序的情况下,RXJava 会比简单的 EventBus 更好。

0 投票
1 回答
157 浏览

java - EventBus 对象的方法在 java 中不起作用

我正在尝试在我的应用程序中包含 EventBus。我关注了 http://tomaszdziurko.pl/2012/01/google-guava-eventbus-easy-elegant-publisher-subscriber-cases/链接。

我收到编译错误: 在此处输入图像描述

我已将 guava-16.0.1.jar 添加到项目中。但是注册功能不起作用。

知道我在这里想念什么吗?

0 投票
1 回答
1668 浏览

java - 在vertx中使用eventBus

我在我的项目中使用了 vertx,但我遇到了 eventBus 的问题。如果我理解正确的话,它可以使用表示服务器路由的一个字符串来使用多种语言进行通信。我的 Server.java 中有这段代码:

在一个 javascript 文件中,我需要获取那个 json 字符串来暂时打印它。我有:

但什么也没有发生。有谁知道为什么?

0 投票
1 回答
1994 浏览

java - Otto 运行时异常

我的应用程序到处使用 Otto,但我一直遇到相同的运行时异常崩溃。这发生在几个不同的事件中,这让我认为我没有正确实施 otto。我正在使用主线程总线技术,如下所示:

这是我的巴士提供商:

这是堆栈跟踪(对于最常见的):