【发布时间】:2020-07-15 00:08:26
【问题描述】:
我收到了回复数据。我将它传递给另一个函数,然后记录它。我第一次记录整个对象并获得所需的输出,但第二次尝试记录该对象内的数组时,我得到一个空数组。 (我已经交叉检查了数组不为空)。
const f1 = () => {
window.gapi.load('analytics', async function() {
window.gapi.analytics.auth.authorize({
'serverAuth': {
'access_token': access_token
}
});
const data = await new window.gapi.analytics.ViewSelector({
container: 'view-selector-container'
});
data.execute();
f2(data);
});
}
const f2 = async function (data){
console.log(data);
console.log(data["zt"]["iH"]);
}
响应1:
{…}
Jd: Object { Lb: false, Zh: 1, Sw: 0, … }
Rb: Object { container: "view-selector-container" }
TM: Object { Lb: false, gx: false, Va: true, … }
hH: Object { Lb: false, gx: false, Va: true, … }
ids: "ga:176819049"
mP: Object { Lb: false, gx: false, Va: true, … }
zt: Object { iH: (9) […], gH: {…}, SM: {…}, … }
响应2:
[]
length: 0
<prototype>: Array []
console.log 中的数据(data["zt"])
zt: {
SM: Object { "UA-xx2": {…}, "UA-xx-1": {…}, "UA-xx-1": {…}, … }
gH: Object { 34199158: {…}, 44335927: {…}, 64056475: {…}, … }
iH: Array(9) [ {…}, {…}, {…}, … ]
r3: Object { 63179797: {…}, 77047380: {…}, 91559901: {…}, … }
<prototype>: Object { fetch: fetch(), … }
<prototype>: Object { constructor: RE(a), execute: execute(), gt: gt(), … }
}
从上面的响应可以看出,iH 是一个长度为 9 的数组,但是当我记录它时,我得到一个空数组
【问题讨论】:
-
请更新数据的JSON。
-
你能把
console.log(data)的结果贴出来吗?会有很大帮助 -
您声称但我第二次尝试使用所需的密钥记录它,但引擎不会背叛并说它不存在。不要责怪引擎。怪你的代码。显示@JeremyAnderson 提到的“console.log”,然后您可以从 SO 获得一些帮助。 ....意思是,用
console.log(data);的结果更新你的问题。 -
请添加来自
console.log(data['zt'])的数据。这是隐藏的。 -
您的“response2:”表示它是一个空数组:
Array []不是undefined,如您的问题所示。我不确定你有没有问题,你有一个空数组。
标签: javascript reactjs async-await