На стороне сервера, node.js setTimeout предоставляет больше объекта, чем id.Это недокументированная территория, я думаю.
Конечно, использование этих внутренних компонентов может быть опасным в том смысле, что они могут измениться по мере развития узла.
node
> function x(){ console.log("hello"); }
> z = setTimeout(x,100000)
{ _idleTimeout: 100000,
_onTimeout: [Function: x],
_idlePrev:
{ repeat: 100,
_idleNext: [Circular],
_idlePrev: [Circular],
callback: [Function] },
_idleNext:
{ repeat: 100,
_idleNext: [Circular],
_idlePrev: [Circular],
callback: [Function] },
_idleStart: Thu, 18 Aug 2011 11:11:48 GMT }
>
похоже, что вы могли бы просто сохранить z._onTimeout, очистите Timeout и вызовите _onTimeout --- но, как я уже сказал, может когда-нибудь сломаться.
Кроме того, тайм-ауты nodeJS не всегда срабатывают, когда должны, но могут быть выровнены по вашей сетке CPUHZ... если вы используете Linux с частотой 100 Гц, вы получите разрешение 10 мс.Я видел, как они стреляли рано или поздно, по сравнению с таймерами, предоставленными hrtime.