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?