异步等待或.then()返回的redux操作未定义

时间:2019-08-05 08:02:06

标签: javascript reactjs redux dispatch

我正在这样做:await dispatch(myfunction(arg1)),如果我添加.then()

const x = await dispatch(myfunction(arg1)) 
console.log(x)

都以未定义的形式回来...

但是当我在浏览器中查看响应时,我会得到期望的数据

有什么想法吗?

动作创建者只是经过一些中间件并调用了一些动作,不知道为什么它没有定义

2 个答案:

答案 0 :(得分:3)

调度不返回承诺。它只是触发更新发生。 如果您需要使用Promise,请考虑使用redux-thunk,然后执行以下操作:

lock (_lockObject)

答案 1 :(得分:0)

您可以将redux-thunk模块添加到项目中。如果您从动作中返回dispatch函数,则该模块允许通过返回诺言来连接调度动作,例如:

// I normally use action creator
const myAction = (args) => dispatch => {
return dispatch({ type: 'MY_ACTION', payload: args });
}

因此您可以串联:

const applyActions = () => {
myAction('test').then(() => {});
}