我试图从远程URL中调用数据源,并且总是得到这个错误TypeError: Cannot read property 'map' of undefined。axios方法封装在axios.js中。
.....
result = new Promise((resolve, reject) => {
axios.get(url)
.then((response) => {
const processedData = response.data.response.map((v) => {
return v;
})
resolve(processedData);
}).catch((error) => {
if(typeof(error) == 'object'){
alert(error) // @@@ I ALWAYS LAND HERE
}
reject(error.data);
});
});
....我已经在我的网络控制台中确认,我试图访问的API url运行良好,所有的数据都可以看到。API格式如下:
[
{
"id": 1,
"name": "alpha",
"build_id": 50,
"app_env_names": "",
"app_env_list": [
""
],
},
{
"id": 2,
"name": "feature/OPS-05",
"build_id": 48,
"image_tag": "feature_DEVOPS-605-jasc-cr-approval-test-71496674-48",
"app_env_names": "dev",
"app_env_list": [
"dev"
],
.....我试过移除地图,但它不起作用。有人知道解决这个问题的方法吗?谢谢!
发布于 2021-07-15 01:45:40
更新:不要引用行下面的代码。这显然是我不知道的承诺结构反模式。因此,一些边缘案件可能无法处理。
使用response = axios.get(url).then(({ data }) => data)代替。
================================================================
就在我贴出这个问题lol后几秒钟就发现了这个问题(正如@Phil所指出的)。由于调用中没有response,因此只需删除它就可以了:
result = new Promise((resolve, reject) => {
axios.get(url)
.then((response) => {
const processedData = response.data.map((v) => {
return v;
})
resolve(processedData);
}).catch((error) => {
if(typeof(error) == 'object'){
alert(error)
}
reject(error.data);
});
});https://stackoverflow.com/questions/68386789
复制相似问题