socket.on() 和 socket.once() 之间的区别

ysd*_*d31 1 javascript websocket socket.io

在客户端,我使用了 socket.on() 并获得了多个侦听器。我在一个答案中发现将其更改为 socket.once(),效果很好。但我找不到原因。有人能告诉我其中的区别吗?哪一个更好?谢谢。

小智 5

Socket.on 用于为给定事件注册一个新的处理程序。

socket.on('news', (data) => {
  console.log(data);
});
// with several arguments
socket.on('news', (arg1, arg2, arg3) => {
  // ...
});
// or with acknowledgement
socket.on('news', (data, callback) => {
  callback(0);
});
Run Code Online (Sandbox Code Playgroud)

Socket.once 仅适用于事件侦听器 - 当您只想在下一次事件发生时收到通知,而不是随后发生的事件时。

因此,socket.once 会在下次事件发生时触发

每次事件发生时都会触发 socket.on