我有一个调用函数 getAllPeople
的 React 组件:
componentDidMount() {
getAllPeople().then(response => {
this.setState(() => ({ people: response.data }));
});
}
getAllPeople
在我的 api
模块中:
export function getAllPeople() {
return axios
.get("/api/getAllPeople")
.then(response => {
return response.data;
})
.catch(error => {
return error;
});
}
我认为这是一个非常基本的问题,但假设我想处理我的根组件中的错误(在我的 componentDidMount
方法中),而不是在 api
函数中,这个根如何组件知道我的 axios
调用是否返回错误?即处理来自 axios
承诺的错误的最佳方法是什么?
原文由 GluePear 发布,翻译遵循 CC BY-SA 4.0 许可协议
getAllPeople
函数已经从您的axios
调用返回数据或错误消息。因此,在componentDidMount
中,您需要检查对getAllPeople
的调用的返回值,以确定返回的数据是错误还是有效数据。如果你想从你的 api 返回一个承诺,你不应该解决你的
axios
在 api 调用返回的承诺。相反,您可以执行以下操作:然后你可以解决
componentDidMount
。