【发布时间】:2019-01-05 21:39:06
【问题描述】:
一些背景知识:当我使用简单的 .then() 链接获取和调度响应时,我能够让一切正常工作。我现在得到的错误是当我试图使我的操作异步,并在承诺上使用 await 时。
注意:我正在使用 redux thunk。
actions.js:
export const onLoginPressed = async (params) => async (dispatch) => {
try {
const loginResp = await fetch("http://localhost:8000/api-token-auth/", {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(params)
})
let res = await loginResp.text();
if (response.status >= 200 && response.status < 300) {
let accessToken = res;
dispatch(storeToken(accessToken));
} else {
let error = res;
dispatch(failToken())
throw error;
}
} catch (e) {
console.log(e)
}
}
export const failToken = () => {
return {
type: FAIL_TOKEN
}
}
export const storeToken = (token) => {
return {
type: CREATE_TOKEN,
token: token
}
}
【问题讨论】:
-
async将确保在后台返回承诺。您是否尝试过从async (params)中删除async? -
您能否提供与您的商店对象相关的代码?可能是设置问题导致此问题
-
是的,我刚试过,它有效!
标签: javascript reactjs react-native redux redux-thunk