1

我构建了一个简单的客户端记录器,它在我的页面上打印所有当前活动的 socket.io 侦听器。我直接从套接字对象和内部$events对象获取这些信息。

$events 对象在 chrome 中如下所示:

$events: Object
    news: function (data) {
    __proto__: Object

但是,当使用socket.removeAllListeners('news')删除事件的侦听器时,它看起来像这样:

$events: Object
    news: null
    __proto__: Object

属性保持不变,但值为 null。为什么没有完全删除?

当您使用socket.once()并从服务器获取一个发射时,或者当您使用 socket.removeListener() 直接删除具体侦听时,该属性将被删除,它看起来像这样:

$events: Object
    __proto__: Object

我真的很想知道它为什么会这样。它是否仍在侦听以 null 为值但不调用任何函数的事件?

4

0 回答 0