为什么此操作不等待 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))
}));
我有以下内容,我是从一个组件调用的
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))
}));