当节点setTimeout回调变为null时会发生什么

时间:2012-05-21 18:13:53

标签: node.js callback

我对回调有疑问。我有一个对象,其中一个函数用作setTimeout回调,该对象可以在回调触发之前删除。节点会在超时发生时知道不会调用它,还是保留引用并调用它?

2 个答案:

答案 0 :(得分:0)

进行了一些测试,看起来节点保持对对象的引用并触发回调。

答案 1 :(得分:-1)

“删除”后,对象不一定会被删除,您只是删除了它的引用。该方法仍然可以调用。

> cat test.js
var a = {                                                                                                                                                                                          
    method: function() {
        console.log('a' + a.property)   
    },
    property: '1'
}
setTimeout(a.method, 1000);
delete a;

> node test.js                                                                                                                                                                        
a1