我触发一个事件
socket.emit('release now');
在一段时间后可能会或可能不会触发另一个事件(取决于某些用户输入)。
socket.on('released', function(){
//do stuff
});
但我只想等待最多,比方说,5秒。如果没有,那么无论如何都要继续//do stuff
(其他一些小事情已经改变)。
如何使用setTimeout
执行此操作?或者我应该首先使用它?因为我无法想到如何让它们(socket.on('...
和seTimeout
)相互沟通....
答案 0 :(得分:1)
不确定我是否理解你所追求的但是我会开枪:
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秒内没有发生,则会触发。