2

我有一些代码正在尝试演变成更复杂的代码,但是由于某种原因,我什至无法将其附加到我当前的数组中。如果我使用 console.log 那么它将输出所需的数据。这是代码...

var p = [];
DataSource.fetch(function () {
    var item = CREAInfo.SiteSelector.DataSource.at(0);
    p.push(item.Phase); 
});

无论出于何种原因,数组'p'仍然是空的......

4

1 回答 1

0

你几乎肯定会遇到某种比赛条件。如果没有更广泛的上下文来说明您发布的代码片段是如何执行的,就不可能更具体。为了证明这个假设,请尝试对您要推送到阵列的项目执行 console.log,然后在将其推送到阵列后,执行 console.log p.length

假设该项目确实被正确推动,有两种可能性可以解释该行为。

1) 检查数组的代码在填充数组的回调执行之前执行。

2) 另一段代码在回调执行后、检查之前清空数组。

于 2013-04-30T21:21:37.047 回答