¿No se resolverán las fugas de memoria diferidas?
Supongamos el siguiente 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...
});
Si nunca termino llamandoresolve()
ofail()
, ¿esto causará pérdidas de memoria, ya que mantengo referencias en las devoluciones de llamada?
Si llamo a uno, pero no al otro, ¿se recolectará el otro basura? Entonces si llamofail()
, jquery se librará dedone()
?
Podría estar pensando completamente mal, pero quisiera alguna aclaración. Lo más cercano que he encontrado hasta ahora fue esto¿Debo invocar siempre JQuery Deferred.resolve o Deferred.reject?. Pero el caso de uso es un poco diferente, ya que en ese ejemplo el usuario nunca ha definido una devolución de llamada parafail()
.
También me encontré con esto,¿Se pueden cancelar los aplazamientos de jQuery?, sin embargo, no estoy tratando de cancelar undeferred
.
Entiendo que esta no es la mejor práctica, pero a los fines de la pregunta, todavía tengo curiosidad por saber si causaría problemas de memoria.
Gracias,