事件传播与优先级

事件的分发由 postEvent 方法触发, 该方法实则是启动一个 Broadcast.layered_scheduler 的异步任务.

layered_scheduler 负责调度不同优先级的 Listener, 将其根据相同的 priority 进行分组并行发起, 且 priority 越小的越先执行.

当一个组中, 有一个执行抛出了 PropagationCancelled 错误, 则停止执行这之后的 所有 监听器.

同时, 当一个 Dispatcher/Decorator 抛出了 ExecutionStop 错误, 则事件监听器的主要部分将被跳过.