Javascript 清除迭代器中的socket.io事件处理程序

Javascript 清除迭代器中的socket.io事件处理程序,javascript,socket.io,Javascript,Socket.io,我有一个迭代器或某种每隔2秒运行一次的作业。在这个作业中,我有一个套接字io事件处理程序。每次执行此事件处理程序时,它传递给服务器的值都会成倍增加 这是我的密码: function job() { // SENDS DATA TO THE SERVER app.io.emit('data', {name: 'test'}); let delay = setTimeout(()=>{ job(); }, 2000); } 第二次执行作业时,它将数据{name:

我有一个迭代器或某种每隔2秒运行一次的作业。在这个作业中,我有一个套接字io事件处理程序。每次执行此事件处理程序时,它传递给服务器的值都会成倍增加

这是我的密码:

function job() {

  // SENDS DATA TO THE SERVER
  app.io.emit('data', {name: 'test'});

  let delay = setTimeout(()=>{
     job();
  }, 2000);
}
第二次执行作业时,它将数据
{name:'test'}
两次抛出到服务器,以此类推。有没有一种方法可以防止这种情况,比如在事件处理程序再次执行之前清除它?据我所知,每次执行
app.io.emit()
时,它都会创建一个新的事件处理程序。谢谢