problemas de temporização com jquery adiada
Esta questão é cuidadosamente destilada versão dofunção não assíncrona executada como jQuery Adiada.
Nós temos 2 jsfiddles:
http://jsfiddle.net/XSDVX/1/ - aqui o evento de progresso não é disparado, apesar de chamar a função notify ().
http://jsfiddle.net/UXSbw/1/ - aqui o evento de progresso é disparado como esperado.
A única diferença é uma linha de código:
setTimeout(dfd.resolve,1);
versus
dfd.resolve();
Perguntas são:
Como está capturando o .notify que é chamado antes que este callback retorne quando atrasarmos a resolução? Pense nisso. Então, pega o objeto deferido que foi retornado de seu primeiro parâmetro e cria um novo objeto diferido dele, vinculando-o aos eventos de progresso e falha. Se a notificação foi chamada antes que o adiado fosse retornado, como é que ela é capturada mesmo com um setTimeout? (Graças ahttps://stackoverflow.com/users/400654/kevin-b por perguntar isso)
Posso me livrar desetTimeout()
e ainda tem callback de progresso disparado?