我的 Javascript 代码有问题,不知道为什么它不能运行。
这是我的计时器:
var time = 0;
startTimer();
function startTimer(){
setInterval(function(){
time=time+1;
},10);
}
此处的代码有效(我在单击按钮时运行 timeoutTester(),然后它会发出警报并向我显示时差):
function timeoutTester(){
var snap_time1 = time;
setTimeout(function(){
var snap_time2 = time;
var diff = snap_time2-snap_time1;
alert(diff); //works: ~100 everytime...
},1000);
}
但是这里的代码不起作用(我通过单击按钮运行 testTimer()):
function timeoutTester(){
var snap_time1 = time;
var result;
setTimeout(function(){
var snap_time2 = time;
result = snap_time2-snap_time1;
},1000);
alert(result); //doesn't work! It always shows me: "undefined"
return result;
}
function testTimer(){
var counter = 0;
setInterval(function(){
counter = counter + 1;
alert(counter); //works: 1,2,3,....
var result = timeoutTester();
alert(result); //doesn't work! It always shows me: "undefined"
}, 3000);
}
你知道问题可能出在哪里吗?(在浏览器中调试时没有错误!)
更新:
我了解到警报(结果);立即执行,而 result 还没有值。
但是由于我从外部调用 timeoutTester(),我仍然需要这个函数的返回值!
有任何想法吗?