addMicroTask method
Implementation
void addMicroTask(Task task) {
_microTasks.add(task);
/// 只要添加了任务,则就需要主动触发hook,以便处理事件
assert(FrameUtil.phase != SchedulerPhase.midFrameMicrotasks,
"可能需要考虑,如果是在mid微任务阶段触发了任务准备好,会出现什么问题?,因为这种情况一般场景不会出现,暂时图省事先不做考虑了,如果你遇到必须在微任务完成的场景,触发了该断言,你可以报告给作者");
assert(FrameUtil.phase != SchedulerPhase.persistentCallbacks, "目前初始化跳转不会添加任务,所以不可能出现在persistent阶段任务准备完成的情况");
if (FrameUtil.phase == SchedulerPhase.transientCallbacks) {
/// 必须保证动画过程中同帧加载,因为动画阶段添加TransientCallbacks是不会触发的
triggerMicroTask();
} else {
addTransientCallbacks();
}
}