Не разрешит ли отложенное создание утечки памяти?
Предположим, следующий код:
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...
});
Если я никогда не позвонюresolve()
или жеfail()
, это вызовет утечки памяти, так как я сохраняю ссылки в обратных вызовах?
Если я позвоню одному, а не другому, будет ли другой мусор собираться? Так что если я позвонюfail()
Будет ли JQuery избавиться отdone()
?
Я мог бы думать неправильно, но хотел бы уточнить. Самым близким, что я нашел, было этоДолжен ли я всегда вызывать JQuery Deferred.resolve или Deferred.reject?, Но вариант использования немного отличается, так как в этом примере пользователь никогда не определял обратный вызов дляfail()
.
Я тоже сталкивался с этим,Можно ли отменить отложенные jQuery?Однако я не пытаюсь отменитьdeferred
.
Я понимаю, что это не лучшая практика, но для целей вопроса мне все еще интересно, может ли это вызвать проблемы с памятью.
Спасибо,