Нужно повторять функцию (в принципе сгодится даже с теми же самыми аргументами), пока не получим необходимый результат. Вот кривой нерабочий код для примера, как то так оно выглядит в моеих влажных фантазиях. Подскажите, пожалуйста, как выпрямить?
function a(callback){ // некая асинхронная функция с колбэком
setTimeout(function(){
var random = Math.random()
console.log(random);
callback(random);
}, 1000);
}
function b(lap){
// нужно выполнять a() до получения
// результата но не более 10 раз
a(function(r){
if(r<0.05 && lap<10) b(lap+1);
});
}
b(0); // поехали, круг - 0
// в итоге получаем только один цикл :(