EventBus的执行顺序
金蝶云社区-chendok
chendok
0人赞赏了该文章 2,408次浏览 未经作者许可,禁止转载编辑于2015年12月21日 18:42:57

EventBus支持Action与Handler一对一的定义,也支持ActionHandler一对多的定义
EventBus不管是前端还是后台,都是按注册事件的顺序执行。
当事件触发时,首先查询到全部事件的处理器(plugs),按【before】、【override】、【after】形成三个队列,插入类型为空时默认是【after】。
然后先按倒序执行【before】队列的处理器,然后按正序执行【override】队列的处理器中的最后一个处理器,最后按正序执行【after】队列的处理器。
因此,目前只有【override】队列的处理器可能被override而不执行,而其他【before】、【after】队列中的处理器一定会被执行到。


前端EventBus中,可以在处理器中通过返回false来终止后续处理器的执行。
后台EventBus中,目前只能在处理器中通过抛出异常来终止后续处理器的执行。