пардон небольшая дурь пришла в голову.
что то типо уневерсального асинхронного doWhile цикла
//пример обьявления
function $doWhile(mem,f){
var iterator=function(){
if ( f(mem) ) setTimeout(iterator, 1);
}
iterator();
}
//пример использования
$doWhile({i:0},function(m){
alert(m.i);
return (m.i++)<5;
});