【发布时间】:2015-06-27 17:25:44
【问题描述】:
假设如下代码:
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()吗?
我可能完全想错了,但想澄清一下。到目前为止,我发现的最接近的是Shall I always invoke either JQuery Deferred.resolve or Deferred.reject?。但用例有点不同,因为在该示例中,用户从未为 fail() 定义回调。
我也遇到过这个,Can jQuery deferreds be cancelled?,但我并不想取消deferred。
我知道这不是最佳做法,但出于这个问题的目的,我仍然很好奇它是否会导致内存问题。
谢谢,
【问题讨论】: