A resolução de um adiado não criará vazamentos de memória?
Suponha o seguinte código:
var deferred = $.Deferred();
deferred.done(function(){
// do something with events, references to dom, etc...
});
deferred.fail(function(){
// do something with events, references to dom, etc...
});
Se eu nunca acabar ligandoresolve()
oufail()
, isso causará vazamentos de memória, pois mantenho referências nos retornos de chamada?
Se eu ligar para um, mas não para o outro, o outro será coletado como lixo? Então, se eu ligarfail()
, jquery vai se livrardone()
?
Eu posso estar pensando errado completamente, mas gostaria de alguns esclarecimentos. O mais próximo que encontrei até agora foi esseDevo sempre invocar o JQuery Deferred.resolve ou Deferred.reject?. Mas o caso de uso é um pouco diferente, pois nesse exemplo o usuário nunca definiu um retorno de chamada parafail()
.
Eu também me deparei com isso,Os adiados do jQuery podem ser cancelados?, no entanto, não estou tentando cancelar umdeferred
.
Entendo que essa não é uma prática recomendada, mas, para o propósito da pergunta, ainda estou curioso para saber se isso causaria problemas de memória.
Obrigado,