Axios 未处理的承诺拒绝
2018-11-01
14913
我的 react-native 应用程序中的 axios 出现了问题。 错误消息在此处提供 Pic1 Pic2 Actions.start() 从未运行。
编辑 1: 这是完整代码。 编辑 2: 错误消息的图片 Pic3 至于结果,const res= await... 应该是问题所在。 必须添加更多详细信息,否则我无法更新这个问题 ;)
export const apiPostLogin = (
accountData
) => async dispatch => {
dispatch(setFetching(true));
try {
var instance = axios.create({
baseURL: 'https://api.xxxx.de/',
timeout: 1000
});
const res = await axios.post('/api/v1/auth/login', accountData);
Actions.Start();
dispatch(setAuthToken(res.data.token));
await dispatch(apiGetAccount(res.data.token));
console.log(res);
} catch (error) {
console.log(error.response);
dispatch(setFetching(false));
if (error.response.status === 401) {
dispatch(
setApiResponse({
apiResponse: true,
didShowResponse: false,
apiResponseError: true,
apiResponseCode: 401,
apiResponseMessage: 'E-Mail und Passwort stimmen nicht überein'
})
);
} else if (error.response.status === 417) {
dispatch(
setApiResponse({
apiResponse: true,
didShowResponse: false,
apiResponseError: true,
apiResponseCode: 417,
apiResponseMessage: 'Du hast Deine E-Mail noch nicht bestätigt'
})
);
} else {
dispatch(
setApiResponse({
apiResponse: true,
didShowResponse: false,
apiResponseError: true,
apiResponseCode: 499,
apiResponseMessage:
'Du kannst Dich im Moment nicht bei uns anmelden. Wir befinden uns im Wartungsmodus'
})
);
}
}
};
1个回答
将
post
调用包装在 try catch(catch 对于处理被拒绝的承诺至关重要)块中。您的网络请求失败。您需要捕获错误/处理承诺拒绝
try {
const res = await axios.post('/api/v1/auth/login', accountData);
console.log('Success!');
console.log(res.status);
console.log(res.data);
} catch (e) {
console.error('Failure!');
console.error(e.response.status);
throw new Error(e);
}
Actions.Start();
或者
尝试使用
axios()
而不是
axios.create()
return axios.({
method: 'post',
baseURL: userEndpoint,
headers: {
common: {
Accept: 'application/json',
}
}
}).then(...).catch(...);
Shivam
2018-11-01