84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
业精于勤,荒于嬉;行成于思,毁于随。
EventEmitter 解决的问题就是时间的发布者不需要关心谁监听这个事件,事件的监听者也不关心谁发出这个事件,只要它们在同一个 EventEmitter 对象上进行 emit 和 on 即可。这样的设计会显著地减少事件的发布者和监听者之间的联系,从而降低复杂度。
当你的事件发送方和消费方都在同一个模块中,不需要通知其它模块或其它模块也关心其中的事件时,用callback就可以把事件发送/监听的事做完了
而使用EventEmitter的目的在于减少模块之间的耦合度模块之间关注EventEmitter而不是去关注事件是由哪个模块发送出来的;同时发送Event的模块也不关心我发出的事件有没有响应,有没有模块需要这个事件,这就能做到模块的职责明确,每个模块只处理自己该完成的工作
如果简单的execute callback的话,那么发送事件/产生事件的一方必须知道我要把事件发给谁,调用哪个模块的callback。而每当有一个新的模块需要这个事件通知时,必须在发送事件方修改,而消费事件方并不能做什么
EventEmitter 解决的问题就是时间的发布者不需要关心谁监听这个事件,事件的监听者也不关心谁发出这个事件,只要它们在同一个 EventEmitter 对象上进行 emit 和 on 即可。这样的设计会显著地减少事件的发布者和监听者之间的联系,从而降低复杂度。
当你的事件发送方和消费方都在同一个模块中,不需要通知其它模块或其它模块也关心其中的事件时,用callback就可以把事件发送/监听的事做完了
而使用EventEmitter的目的在于减少模块之间的耦合度
模块之间关注EventEmitter而不是去关注事件是由哪个模块发送出来的;同时发送Event的模块也不关心我发出的事件有没有响应,有没有模块需要这个事件,这就能做到模块的职责明确,每个模块只处理自己该完成的工作
如果简单的execute callback的话,那么发送事件/产生事件的一方必须知道我要把事件发给谁,调用哪个模块的callback。而每当有一个新的模块需要这个事件通知时,必须在发送事件方修改,而消费事件方并不能做什么