Цикл при явном видимом ограничении на 2 прохода заходит в себя третий раз. Не имею ни одной здравой мысли почему так.
Дополню:
функция теперь выглядит так:
function func1() {
if(...){
//some code #1
var _ic = _Items.length;
for( var i = 0; i < _ic; i++ ) {
$('#tw2logn').append( _Items[ i ].ID + ', ' );
}
//some code #2
} else {
//some code #3
}
setTimeout( function() { func1(); }, timeout1 );
}
Во время работы указанного цикла происходит классический out of range и вместо креша исполнение вылетает из if-else и таймаут спокойно отрабатывает, но при этом теряется кусок "some code #2". А в логе имеем "Item1, Item2,".