假设有对象订阅套接字服务器,如下所示:
socket.on('news', obj.socketEvent)
这些对象的生命周期很短并且经常被创建,从而产生许多订阅。这似乎是内存泄漏和容易出错的情况,可以通过这种方式直观地防止:
socket.off('news', obj.socketEvent)
在对象被删除之前,但是,off
套接字中没有方法。是否有另一种方法用于此目的?
编辑:没有找到答案,我正在分配一个空白方法来覆盖原始事件处理程序的包装方法,下面是一个示例。
var _blank = function(){};
var cbProxy = function(){
obj.socketEvent.apply(obj, arguments)
};
var cbProxyProxy = function(){
cbProxy.apply ({}, arguments)
}
socket.on('news', cbProxyProxy);
// ...and to unsubscribe
cbProxy = _blank;