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