我看到在某些特定情况下,store.dispatch(...)并没有像我期望的那样同步执行化简器。这似乎仅在CanActivate防护中以及首次加载应用程序时发生。
我已经在分派(A)之前,reducer(B)和分派(C)之后放入控制台日志语句,但是我可以清楚地看到输出(在某些情况下)以A,C顺序记录,B。这是在嵌套防护中发生的,其工作原理类似。
顶级警卫人员加载实体并调度LoadAll事件以设置实体并将状态为true的已加载标志设置为
儿童看守从路线获取ID,检查记录是否在商店中,并通过调度Select(id)事件选择记录
孙子后卫使用选定的实体做出决定
在后卫中
console.log('A');
this.store.dispatch(new fromStore.LoadAllThings(things));
console.log('C');
减速器:
case ThingActionTypes.LoadAll: {
console.log('B');
return adapter.addAll(action.payload, {
...state,
loaded: true,
});
}
鉴于上面的代码,我希望控制台输出为A,BC。在某些情况下,我会看到A,C,B。
有人可以帮忙解释一下这里发生了什么吗?