Существует некая коллекция
и функция по работе с ней.
Каждый элемент может быть простым, или также быть коллекцией.
var a=[1,['a',[10,20,30],'b'],3,4];
function whatAmI(me){ return Object.prototype.toString.call(me).split(/\W/)[2]; } //Это способ получения типа элемента js
function t_log(collect, collect_index){
if (collect_index < collect.length) {
console.log(collect[collect_index]);
if (whatAmI(collect[collect_index]) === "Array"){
type_log(collec,collect_index)
//Вот здесь нужно остановиться и ждать пока не выполнится type_log, а вернее задержаная функция
/***********************************
*Точка остановки
***********************************/
t_log(collect[collect_index],0);
}
collect_index++;
t_log(collect, collect_index);
}
};
function type_log(collec,collect_index){
inter = setInterval(somefunction, 50)
}
t_log(a,0);
Т.е. проще нет, и быть не может - рекурсия.
Но как оказалось, что нужно остановиться и ждать в Точке остановки.
Каких либо функций тип sleep, delay не существует
Конструкция while flag {} со сбросом/установкой флага в "задержанной" функции (somefunction) вешает браузер.
И что делать?