我保证派遣的操作将在其后的语句(访问上述操作修改的状态)之前完成:
function f() {
return function( dispatch, getState ) {
dispatch( myActionCreator() );
doSomethingWithStateModifiedAbove( getState().x.y.z );
};
}
或者,我是否需要转向' doSomethingWithStateModifiedAbove'成为动作创作者?
答案 0 :(得分:0)
是的,默认情况下,dispatch()
是100%同步的。到第一个dispatch()
调用返回时,根减量函数已执行且状态已更新。对getState()
的调用将返回更新后的状态。
也就是说,中间件可以拦截,延迟和修改调度的动作。中间件可能会将操作延迟到稍后,在这种情况下,第一个调度可能会返回但实际上不会导致状态更新。不过,打电话给getState()
仍然是安全的。