Javascript 即使在成功后,也要做出承诺
我通常是一个有角度的开发者,在react工作。如果这个问题看起来很简单,请原谅 我有一个简单的承诺Javascript 即使在成功后,也要做出承诺,javascript,reactjs,Javascript,Reactjs,我通常是一个有角度的开发者,在react工作。如果这个问题看起来很简单,请原谅 我有一个简单的承诺 return axios(`team/${this.state.teamId}/player`, this.state) .then((response) => { console.log('formSubmit success'); this.store.dispatch({ type
return axios(`team/${this.state.teamId}/player`, this.state)
.then((response) => {
console.log('formSubmit success');
this.store.dispatch({
type: constants.PLAYER_UPDATE,
payload: response.data.user,
});
return false;
})
.catch((error) => {
console.error('Error', error.response.data);
this.setState({
saveStatus: error.response.data.message
});
return Promise.reject(error)
});
在“网络”选项卡中,我可以看到URL被很好地获取。
在控制台中打印时,调用store.dispatch
但同时它在catch语句中调用代码。
我的控制台输出是
formSubmit success Player.js:127
Store BEFORE | PLAYER_UPDATE Store.js:76
Uncaught (in promise) TypeError: Cannot read property 'data' of undefined
at Player.js:135
当一切都是成功的时候,它为什么要追求CATCH()呢?我甚至在this.store.dispatch的末尾添加了return语句
请提供帮助。函数将捕获
then
中出现的任何错误,如果您只想捕获promise中的错误,您可能需要使用then
函数中的第二个回调。你应该这样做:
return axios.get(`endpoint`)
.then(successCallback, errorCallback);
或者,对你来说
return axios(`team/${this.state.teamId}/player`, this.state)
.then((response) => {
console.log('formSubmit success');
this.store.dispatch({
type: constants.PLAYER_UPDATE,
payload: response.data.user,
});
return false;
}, (error) => {
console.error('Error', error.response.data);
this.setState({
saveStatus: error.response.data.message
});
return Promise.reject(error)
});
可能是我的支架弄乱了,我没注意到。但那是我的意图。谢谢你的回复。让我更改代码并尝试一下。如何使用wait实现成功和失败回调?我想处理401和403