2017-05-28 51 views
0

我对Promises仍然相当陌生,并且认为我对它们有一个掌握,但是这个问题让我陷入了困境。我的代码:Javascript承诺返回值可以被记录但不被使用

return axios.post('./getParks.php') 
.then((daysGames)=> { 
    console.log(daysGames.data); 
    let dailyData = daysGames.data; 
    Object.keys(dailyData).map((day)=> { 

在运行控制台日志中这样的:

Object {1: Object, 2: Object..} 
TypeError: Cannot read property 'data' of undefined 

我也曾尝试导致同样的错误如下:

let dailyParks = axios.post('./getParks.php'); 
return dailyParks 
.then((daysGames)=> { 
    console.log(daysGames.data); 
    let dailyData = daysGames.data; 
    Object.keys(dailyData).map((day)=> { 
+0

你在尝试JSON.parse(daysGames)之前,达到daysGames.data? – muratgozel

+0

@muratgozel如果将此行'console.log(daysGames.data);'更改为此'console.log(Object.keys(daysGames))',您可以看到getParks.php返回的值已经是一个对象 –

+0

正确的控制台中的数据属性? – quirimmo

回答

0

嗯,我已经解决了,但我不完全确定它为什么起作用。如果有人可以启发我的推理,它将不胜感激

return axios.post('./getParks.php') 
.then((daysGames)=> { 
    console.log(daysGames.data); 
    let dailyData = daysGames; 
    Object.keys(dailyData.data).map((day)=> { 
+1

此答案中的代码在功能上与问题中的第一个代码相同 - 因此,您必须“固定”其他代码 –

+0

您确实没有向我们展示足够的代码,并且您对问题的描述不够明确是或改变了我们甚至参与这个问题。 – jfriend00