我在 iPhone 和 Android 上有一个 phonegap 项目。从表面上看,这个问题似乎是一种竞争条件,但我不明白它是如何发生的。用户可以单击具有设置对象属性的关闭回调的按钮,然后清除屏幕并加载主菜单。在代码中:
button.onclick = function (employee) {
return function () {
employee.task = "some task";
returnToMenu();
}
}(employees[i]);
用户回到主菜单后,他们可以点击一个按钮,加载一个显示所有用户的屏幕。如果员工设置了该任务属性,则应对该员工的按钮进行额外的格式化。
if (employee.task)
// style the button being created for this employee
不知何故,如果单击速度足够快,则格式化不会完成。如果您单击返回(返回主菜单)并重新加载屏幕,则格式现在已完成。鉴于上面的代码,我看不出employee.task
在加载菜单后怎么可能返回 undefined 。这里发生了什么?