我正在尝试获取一些 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
getData
是 async
,因此,如果您只是调用它,并在下面的行中执行一些依赖于 async
操作之前完成的操作,它将不起作用,因为该行将在async
操作完成。尝试将 console.logs
移动到 then
回调中:
getData().then((response) => {
personalityData.ENFP = response;
console.log(typeof(personalityData.ENFP))
});