setTimeout внутри цикла while

Я искал, как использоватьsetTimeOut с циклами for, но не очень много о том, как его использовать с циклами while, и я не понимаю, почему в любом случае должно быть много различий. Я написал несколько вариантов следующего кода, но кажется, что этот цикл приводит к сбою браузера:

while(src == '')
{ 
    (function(){
        setTimeout(function(){
        src = $('#currentImage').val();
        $("#img_"+imgIdx).attr('src',src);
        }, 500);
     });
} 

Почему?

По сути, у меня есть изображение, созданное динамически, чей атрибут источника требует времени для загрузки, поэтому, прежде чем я смогу его отобразить, мне нужно постоянно проверять, загружен он или нет, и только когда его путь доступен в$('#currentImage'), тогда я покажу это.

Этот код работал нормально, прежде чем я использовал цикл while, и когда я непосредственно сделал

setTimeout(function(){
    src = $('#currentImage').val();
    $("#img_"+imgIdx).attr('src',src);
}, 3000);

Но я не хочу заставлять пользователя ждать 3 секунды, если загрузка может быть выполнена быстрее, поэтому я помещаюsetTimeOut в цикле while и сократил его интервал, так что я проверяю только загруженный путь каждые полсекунды. Что в этом плохого?

Ответы на вопрос(3)

Ваш ответ на вопрос