我有一些代码,我试图发展成更复杂的东西,但由于某种原因,我甚至无法将其附加到我当前的数组。如果我使用console.log,它将输出所需的数据。这是代码......
var p = [];
DataSource.fetch(function () {
var item = CREAInfo.SiteSelector.DataSource.at(0);
p.push(item.Phase);
});
无论出于何种原因,数组'p'仍然是空的......
答案 0 :(得分:0)
你几乎肯定会遇到某种竞争条件。如果没有关于您发布的代码段如何执行的更广泛的上下文,则不可能更具体。为了证明这个假设,尝试在关于推送到阵列上的项目上执行console.log,然后在将它推入阵列后,执行{.1}}的console.log。
假设项目确实被正确推送,有两种可能性可以解释这种行为。
1)检查数组的代码在填充数组的回调之前执行。
2)另一段代码是在回调执行后但在检查之前清空数组。