事件传播与优先级
事件的分发由 postEvent 方法触发, 该方法实则是启动一个 Broadcast.layered_scheduler 的异步任务.
layered_scheduler 负责调度不同优先级的 Listener, 将其根据相同的 priority 进行分组并行发起,
且 priority 越小的越先执行.
当一个组中, 有一个执行抛出了 PropagationCancelled 错误, 则停止执行这之后的 所有 监听器.
同时, 当一个 Dispatcher/Decorator 抛出了 ExecutionStop 错误, 则事件监听器的主要部分将被跳过.