为什么此操作不等待 return 响应

Why is this action not waiting to return the response

我有以下内容,我是从一个组件调用的

const getUserAction = () => {
  return dispatch => {
    dispatch(request());
    return getUser()
      .then(
        response => {
          dispatch(success());
          console.log(response);
          return response
        },
        error => {
          dispatch(failure(error));          
        }
      )
  };
};

然后在组件上,我正在调度这个动作:

this.props.dispatch(getUserAction())
  .then(response => console.log(response))
}

我看到来自上述组件的控制台日志被触发来自操作的控制台日志之前。

这是为什么?我做错了什么还是这是预期的行为?为什么来自操作的控制台日志等待响应,而来自同一操作的 return 语句不等待?

然后,如果不通过减速器,我如何在我的组件中获得响应?

const getUserAction = (cb) => {
  return dispatch => {
    dispatch(request());
    return getUser()
      .then(
        response => {
          dispatch(success());
          console.log(response);
          // success callback with response
          cb(null /** no error hence null */, response) 

          return response
        },
        error => {
          dispatch(failure(error));          
        }
      )
  };
};

这样调用:

this.props.dispatch(getUserAction((err, success) => {
   if(err){
     // Handle error here
     return;
   }, 
   // Success handle 
   console.log(response))
}));