Javascript 对象在附加到另一个对象时变得未定义

问题描述 投票:0回答:1

我正在尝试获取一些 json 数据,将其放入 Javascript 对象,然后将其指定为对象 individualData 的子 ENFP。 在下面的代码中,我使用函数

getData
来获取 json,然后将其分配给
personalityData.ENFP
。当我从倒数第二行记录
response
时,
response
具有类型对象和预期值。但是当我记录
personalityData.ENFP
时,它的类型未定义且值未定义。我不明白为什么会发生这种变化,因为
response
立即分配给
personalityData.ENFP
。另外,
typeof(personalityData)
始终返回对象。

var personalityData = {}
var getData = async function () {
            const res = await fetch("url")
            if (res.status == 500) {
                return '500 Error';
            } else if (!res.ok) {
                return 'response is not ok';
            }
            const jsonData = await res.json();
            return jsonData;
    }
getData().then(response => personalityData.ENFP = response); 
     //console.log(typeof(response)) returns object
     //console.log(typeof(personalityData.ENFP)) returns undefined
    //console.log(typeof(personalityData)) returns object
javascript object promise fetch undefined
1个回答
0
投票

getData
async
,因此,如果您只是调用它,并在下面的行中执行一些依赖于
async
操作之前完成的操作,它将不起作用,因为该行将在
async
操作完成。尝试将
console.logs
移动到
then
回调中:

getData().then((response) => {
  personalityData.ENFP = response;

  console.log(typeof(personalityData.ENFP))
}); 
© www.soinside.com 2019 - 2024. All rights reserved.