Node.js:函数与事件发射器

Node.js: Function vs EventEmitter

在一篇关于EventEmitter的文章中,有人说在下面的例子中,不需要使用事件。没有意义:

const events = require("events")
const eventEmitter = new events.EventEmitter()


eventEmitter.on("say_hi", () => {console.log("sa")})
eventEmitter.emit("say_hi")

他说过:

When you build a library or internal API, it allows other parts of your code (or people using your code) to subscribe to events without you needing to know this in advance.
For the case you used it above, it does not make sense.

但是我完全没看懂他这句话的意思
我根本不知道什么时候使用 EventEmitter 什么时候使用 Function.

在另一个 中,他用 EventEmitterFunction 实现了他的示例。 execution除了事件被分配给一个对象(称为student_max)之外没有区别,如果要为另一个学生实施,则必须重写(即重复)事件,但在function all objects (all students) 可以使用评分方法。

有人可以通过示例和代码清楚地解释何时使用 EventEmitter 以及何时使用 Function 吗?

最好最清楚的答案在这个 and THIS
一般来说,对于事件应该看Clean CodeOpen/Closed原则(解耦)是SOLID原则之一。