问题标签 [event-dispatching]

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 投票
0 回答
42 浏览

php - 如何在 EventListener 中触发事件?

我正在编写一个 PHP 应用程序,并希望为我的业务逻辑的核心部分实现中介者模式。这个“核心”其实是一种有很多事件状态的游戏。因此,事件驱动的处理似乎是最佳方法。

中介者模式本身没有问题。我只需要创建一个EventDispatcher并附加一些Listeners 到它。

(实际上在我的具体情况下它有点复杂:Listeners 需要实现类似责任链状态模式的东西,以便根据流程的当前状态以不同的方式处理相同的事件。)

问题是,对事件的处理可能会改变进程的状态并引发进一步的事件。这意味着,侦听器应该能够触发事件。这意味着:

  1. 他们需要知道EventDispatcher. 所以EventDispatcher需要要么通过构造函数注入,要么传递给 notification( notify(string $eventName, Event $event, EventDispatcher $eventDispatcher)) 方法。
  2. 每个听众都需要了解它触发的所有事件的细节。注入它们将不是一个切实可行的解决方案。所以我们会new MyEvent(...)在监听器中得到很多语句,代码会变得更难测试。

对我来说,两者都有腐烂的气味......

如何解决这个困境,让代码干净,when EventListeners 触发事件?

0 投票
0 回答
68 浏览

symfony - 如何在 Symfony 中以紧凑的形式设置事件处理程序?

我正在编写一个 Symfony 4 应用程序。它的核心是一个包含一些嵌套子流程的流程。一般来说,这个想法,如何处理它看起来像这样:

有一些processes(主要流程及其子流程的层次结构)。每个进程都有一组states。每个进程都有一组 allowed events。

这种机制的门面是SystemEventHander. 它注册处理的进程,分析传入的请求,并为当前事件找到并执行适当的处​​理程序。

services.yaml

所以我的所有自定义事件最初只由一个处理程序处理:SystemEventHandler().

问题是,对于每一个事件,我必须编写几乎相同的行:

只有process_name:event_name变化,其余的都是静态的。

Image 我有很多活动——30 个?50?100?我怎样才能避免为每一行显式地写一个新行?

0 投票
1 回答
1046 浏览

javascript - three.js 的 EventDispatcher 可以用于类之间的通信吗?

核心问题

在一个支持 EventDispatcher 的类上发出的事件不会被另一个支持 EventDispatcher 的类拾取。

如何让通信在整个应用程序范围内工作,以便我可以传递消息?

目前它似乎只支持将消息传递给它自己的类。

背景

我正在使用这个样板文件,它给了我三个.js 和 es6:

https://github.com/paulmg/ThreeJS-Webpack-ES6-Boilerplate

我已经手动更新了软件包以使用 three.js r97。

我正在查看 EventDispatcher 类,我认为这是一种在系统中传递消息同时保持解耦的干净方式。例如,我有一些 HTML UI 可以监视一个复选框。

精简到核心示例,我有interaction.js:

我有 boxmanager.js(精简到核心位):

当我在事件侦听器上触发boxOpenStateToggled事件时不会捕获它。InteractionBoxManager

我得到一个这样的控制台日志:

我在这里期待看到“BoxManager 中捕获的事件”——它是系统范围的事件调度程序吗?或者它只能在每个类的基础上在内部调度事件?

展示我的工作

我不确定这是否是我使用它的方式,所以我尝试了:

  • 使用extends类上的关键字来提供EventDispatcher功能,它可以工作,但只能在类中使用。

  • 最初使用的.call是three.js 早期版本中的版本。

我找不到任何关于使用 EventDispatcher 的真正讨论或示例,也找不到它在库中的使用位置。

我误解了它的目的吗?我用错了吗?

0 投票
0 回答
58 浏览

android - 单击其中的 EditText 时如何触发 LinearLayout 的单击事件?

当我点击电视时,我可以触发ll的点击事件。

但是,当我点击 et 时,我不能。

似乎 et 消耗了点击事件。

如何解决这个奇怪的问题?

0 投票
1 回答
98 浏览

javafx - JavaFX - StackPane 与窗格作为 EventDispatcher

在事件调度程序窗格中发生鼠标按下事件。当事件发生时,窗格应显示其组合框的上下文菜单。

如果仅将事件分配到窗格之一,则效果很好。当事件被分配到窗格一和窗格二时,窗格一的上下文菜单不会显示。我想这与事件尾部和事件消耗有关。

到目前为止,我还没有看过 JDK 本身的 EventDispatcher 类。

这是我到目前为止得到的:

任何想法如何处理这个?

0 投票
1 回答
76 浏览

symfony - 我什么时候应该从 Symfony EventDispatcher 切换到 RabbitMQ(任何 *MQ 库)?

我目前正在考虑的是,在我们的平台上,用户生成的事件数量每天都在增加(通话开始、通话结束、通话记录准备好、用户被阻止等),所以什么时候应该是从 Symfony EventDispatcher 切换到更高效、更可扩展的东西?

如果我错了,请纠正我:Symfony EventDispatcher 将每个订阅者加载到服务器 RAM 中并保持它直到请求被处理?如果是,这意味着 2 个生成的事件将占用 RAM 中的 2x(所有订阅者类的总和)内存,这将导致我增加服务器 RAM,这将导致我支付更多费用,而不是使用有效的事件处理方法(libs,系统架构等)。

0 投票
1 回答
220 浏览

javascript - 从 JavaScript 中的自定义对象调度事件

是否可以在对象中创建自定义事件?像这样的东西

并在 mai.js 创建一个实例myCustomClass

使用此代码,我收到一条错误消息,告诉我这dispatchEvent不是函数

0 投票
1 回答
182 浏览

javascript - 调度拖尾事件

我想以编程方式触发 d3-drag 的“结束”事件。我有一些圈子,并像这样实现它们的拖动处理:

现在,稍后在我的代码中,我想以编程方式触发它的“结束”部分。

我已经尝试过这样的事情:

0 投票
1 回答
41 浏览

javascript - javascript 为多个事件添加单个事件列表器,例如 ajax 函数回调成功、失败等

我想创建一个接受设置的 javascript 对象,并使用单个 addListener 函数提供多个事件。例如addListener({success: callback,fail:callback})等。我希望我的要求很明确。

0 投票
1 回答
118 浏览

javascript - Javascript - 向集合中的所有对象发送事件

如何将自定义事件分派给集合中的所有自定义对象?

Node.shape 是一个Konva形状

由于我是 Javascript 的初学者,请保持回复易于理解,谢谢。