对redux存储的更改是否同步发生?

对redux存储的更改是否同步发生?,redux,react-redux,flux,Redux,React Redux,Flux,是否保证在time store.dispatch返回时,状态已经更改?如果是这样的话,那么为什么不作为发送呼叫的结果返回newState呢 store.dispatch( action1() ); store.dispatch( action2() ); 例如,我将在action1中登录用户,然后我想启动另一个操作,该操作将使用LogeIn用户信息进一步更改状态。所以我想确保action2不会启动,除非action1已经成功地更改了状态 那么,通过time store.dispatch返回,是

是否保证在time store.dispatch返回时,状态已经更改?如果是这样的话,那么为什么不作为发送呼叫的结果返回newState呢

store.dispatch( action1() );
store.dispatch( action2() );
例如,我将在action1中登录用户,然后我想启动另一个操作,该操作将使用LogeIn用户信息进一步更改状态。所以我想确保action2不会启动,除非action1已经成功地更改了状态

那么,通过time store.dispatch返回,是否保证状态已经更改

减速器示例:

function reducer(state, action){
  // please ignore that i will mutate state, just for sake of simplicity of example.
  if(action.type==='ACTION1'){
   state.user_id = action.payload;
   return state;
 } 

 if(action.type==='ACTION1'){
   state.value2 = state.user_id * action.whatEver;
   return state;
 }

  return state;
}

我目前的保护措施是,我使用React.component监视对用户id的更改,然后启动action2,但如果Redux操作是同步的,那么我可以在action1之后直接启动action2,并简化我的样板文件。

是的,默认情况下
dispatch()
是100%同步的。中间件可以截获动作并可能延迟动作,或者以其他异步方式修改行为。但是,除此之外,在
dispatch
返回时,可以保证根还原程序已经完成运行,当前状态值已经交换,并且已经通知订阅者。

总是这样吗?