在一个地方我们使用eventEmitter来生成事件。实际上这是非常常见的方式。
someInstanse.event.on('started', (data, date) => {
//crazy stuff here
})
在另一个地方,我们试图抓住它。使用箭头功能时一切都很清楚。 'data'和'date'作为参数传递给函数
someInstance.event.on('started', function(data, date) {
});
但这个意思实际上是如何起作用的?我们用发射器确定3个args,现在我们确实只有事件字符串和函数
{{1}}
我想在添加箭头函数之前,这是调用匿名函数的唯一方法
答案 0 :(得分:1)
这是典型的发布/订阅设计模式。它实际上取决于emit
以及订阅者对事件的响应方式是如何实现的。
基本上,在发布功能中,您希望调用每个订阅者(on)函数,并提供带有publish(emit)的信息。下面只是一些伪代码。
function publish(type, ...args) {
// for each of the subscribers of that type
for (let i = 0; i < pubsub[type].length; i++) {
// you could do (this provides the listener with type)
subscribers[i](type, ...args)
// or you could do (the subscriber doesn't know the type)
subscriber[i](...args)
}
}
如果你想看一下,我在github上写了一个缩小的pub / sub模式。我认为帮助您理解这个问题非常有帮助。 https://github.com/thomasyimgit/pubsub/blob/master/index.js