我在使用以下代码片段时遇到问题。
var flag = { f: 0 };
setTimeout(function(flag) {
flag.f+=1;
}, duration, flag);
while(flag.f == 0);
alert("Asd");
“Asd”永远不会被提醒。一段时间后页面崩溃。有什么问题吗?
setTimeout()
停止执行其余代码。 setTimeout()
将运行,然后您的 while 循环将运行,因此它永远不会执行。
这是实际发生的事情的一个非常愚蠢的版本。欲了解更多信息:
http://ejohn.org/blog/how-javascript-timers-work/
编辑:
更好地理解您的问题后,这似乎就是您正在寻找的:
var flag = { f: 0 };
setTimeout(function(flag) {
flag.f+=1;
afterMove()
}, duration, flag);
function afterMove() {
alert("move is done!");
}