asynchronous代码是否导致内存泄漏?
我担心asynchronous操作是否容易发生内存泄漏。 我的上下文是在前端使用Javascript和后端(node.js)
在execute
操作中,创build代表IResponder
。 它具有对主要模块的参考,以及success
和fault
方法。
asyncOperation
执行asyncOperation
并调用IResponder
的result
或fault
方法。
我的问题是:我希望exampleModule被释放在主程序的末尾,因为我看到有一些循环引用进行封闭等。请告知或确认。
execute: function() { var self = this; function IResponder() { this.result = function(data) {self.result(data)}; this.fault = function(info) {self.fault(info)}; } var exampleModule = new ExampleModule(); exampleModule.asyncOperation(new IResponder());//calls back result or fault of IResponder }, success: function(data) { //is exampleModule deallocated here? }, fault: function(info) { // //is exampleModule deallocated here? }
循环引用不会为优秀的JavaScript垃圾收集器带来问题。
在这种情况下,当你的对象成为符合条件的解除分配时,取决于ExampleModule
何时让它引用IResponder
。