Проблема с setTimeout, нужно чтобы меду циклами while была пауза

Igor

function Game(){
var fi = figureSel(it);
f = eval(fi + '.position');
var color = eval(fi + '.colorClass');
var posi = f[0];
var i = 0;
var t = 0;
function Star(){
while(t < 4){
setTimeout(Star, 1000); for (i = 0; i < posi.length; i++){ $(pos(posi[i][0] + t, posi[i][1])).addClass(color); };
t++; }; };
1 ответ

Igor

Нужно рекурсивно вызывать функцию через SetTimeout 4 раза, а не пихать while в Star, который вызывается через 1 секунду, получается каждый раз через секунду вызывается функция Star, в которой цикл четыре раза вызывает опять функцию Star итп

Примерно так:

function Star() { if (t < 4) { setTimeout(Star, 1000); for (i = 0; i < posi.length; i++) { $(pos(posi[i][0] + t, posi[i][1])).addClass(color); }; t++; };
};

licensed under cc by-sa 3.0 with attribution.