setTimeout dentro do loop while

Eu procurei como usarsetTimeOut com for loops, mas não há muito sobre como usá-lo com loops while, e não vejo por que deveria haver muita diferença de qualquer maneira. Eu escrevi algumas variações do código a seguir, mas esse loop parece travar o navegador:

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

Por quê?

Basicamente eu tenho uma imagem criada dinamicamente cujo atributo de origem leva tempo para carregar às vezes, então antes que eu possa exibi-lo, eu preciso continuar verificando se ele está carregado ou não, e somente quando seu caminho está disponível em$('#currentImage'), então eu o exibo.

Este código funcionou bem antes de eu usar um loop while, e quando eu fiz diretamente

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

Mas eu não quero ter que fazer o usuário esperar 3 segundos se o carregamento pode ser feito mais rápido, por isso eu coloquei osetTimeOut em um loop while e curto seu intervalo, para que eu verifique apenas o caminho carregado a cada meio segundo. O que há de errado com isso?

questionAnswers(3)

yourAnswerToTheQuestion