我是 Node.js 新手,正在学习...
我有以下 2 个 socket.io 监听器,我需要确保 .on 在 .once 之前发生(当前 .once 首先发生):
io.on('connection', function (socket) {
io.once('connection', function (socket) {
有没有一个好的方法来确保 .once 总是发生?
最佳答案
这可能不起作用,因为您正在创建两个独立的函数。通常,对于事件监听器来说,这很好。在这种情况下,您需要将它们耦合起来。
您可以做的是使用 on
进行订阅,并让处理程序确定它之前是否运行过。
io.on('connection', function (socket) {
if (!this.called) {
// do what you want to do only the first time
this.called = true;
}
// do whatever you want to do every time
}.bind({ called: false });
这将创建一个包装函数,用于跟踪它是否已被调用,并在第一次调用时执行一些特殊操作。
关于node.js - 确保一个事件发生在另一事件之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20508974/