如何设置等待socket.on事件的上限?



>I 触发一个事件

socket.emit('release now');

一段时间后,可能会也可能不会触发另一个事件(取决于某些用户输入)。

socket.on('released', function(){
//do stuff
});

但我只想等待最多,比如 5 秒。如果没有,那么无论如何都要继续//do stuff(改变一些其他小事情)。

我如何使用setTimeout执行此操作?,或者我应该首先使用它?因为我想不出如何让他们(socket.on('...seTimeout)相互交流......

不确定我是否理解你在追求什么,但 Ill 试一试:

var eventTimeout = setTimeout(function{ /* timeout code here */}, 5000);
socket.emit('release now'); // emit fired and timer set
socket.on('released', function() {
clearTimeout(eventTimeout); // cancel our timeout since we got released on time
// do Stuff
});

所以

/* timeout code here */

如果释放的事件未在 5 秒内发生,将触发。

最新更新