【发布时间】:2021-05-10 22:15:44
【问题描述】:
我正在尝试用我的电脑和手机在本地测试我的 react 项目。我使用的是 JavaScript 而不是 TypeScript。
当我在计算机上运行该项目时,一切正常,但是当我尝试将其加载到手机上时,出现错误:Unhandled Rejection (TypeError): undefined is not an object (evaluating 'scheduleArr.forEach')。我以为我正确使用了async 和await,因为这段代码可以在我的电脑上运行。我很困惑为什么这段代码可以在一个平台上运行,而不能在另一个平台上运行。
async function getSchedule() {
let scheduleArr = await axios.get('api/schedule/')
.then(response => {
return response.data;
})
.catch((error) => {
console.log(`ERROR: ${error}`);
});
scheduleArr.forEach(game => {
/* do stuff */
}
});
我认为这个问题与async 和await 直接相关,因为当我注释掉这个函数时,我的项目在我的手机上正确加载。
谁能帮我理解我做错了什么?
【问题讨论】:
-
当使用
async和await你需要try和catch块而不是then和catch方法 -
你的手机和电脑在同一个网络吗?或者您正在使用您的移动数据网络?
-
@codemonkey 我的手机在同一个网络上。当我在没有任何逻辑的情况下测试我的应用程序的样式时,它呈现正确。
-
@Sysix 你能再解释一下吗?当我将
.then.catch更改为trycatch时,两台设备都出现错误。 -
重点是您的
axios请求显然会在您的手机上炸弹,而trycatch的东西将有助于识别具体错误。
标签: javascript reactjs async-await axios asynchronous-javascript