我想设置一个超时并在循环结束时停止一个函数。
这是我的代码,底部设置了超时功能。
//Drawing the car turning and changing speed
function drawCar() {
var cx = canvas.width/2;
var cy = canvas.height/2;
var totalcars = 2;
var car_distance = 100;
for (i = 0; i <= totalcars; i++) {
// Get random positions for stars.
var x1 = Math.floor(Math.random() * 400);
var y1 = Math.floor(Math.random() * 400);
if (x1 >= 190 && y1 >= 0) {
x1 += (speed1 * mod1) * Math.cos(Math.PI / 180 * angle1);
y1 += (speed1 * mod1) * Math.sin(Math.PI / 180 * angle1);
context.save();
context.translate(x1, y1);
context.rotate(Math.PI / 180 * angle1);
context.drawImage(car1, -(car1.width / 1), -(car1.height / 1));
context.restore();
}
}
if (i == totalcars) {
return;
}
setTimeout(drawCar, 2000);
}
答案 0 :(得分:0)
setTimeout
用于指定某个函数将来启动一段时间;你所写的内容确保你的drawCar
将永远再次执行(暂停后)。
如果删除对setTimeout
的调用,则在循环结束时您的函数将停止。 (而最后的if
是没有意义的:函数将返回任何一种方式。)