如何从Nodejs的setTimeout中获取整数?

问题描述 投票:7回答:3

关于nodejs的计时器的文档说,setTimeout将返回一个timeoutIdhttp://nodejs.org/api/timers.html#timers_cleartimeout_timeoutid

当我在网络浏览器中使用javascript时,我得到一个整数作为返回值。

var b = setTimeout(function(){console.log("Taco Bell")})
// b = 20088

当我使用节点并执行相同的操作时,返回的是

var b = setTimeout(function(){console.log("Taco Bell")})
// { _idleTimeout: 60000,
//   _idlePrev: 
//     { _idleNext: [Circular],
//       _idlePrev: [Circular],
//       ontimeout: [Function] },
//   _idleNext: 
//     { _idleNext: [Circular],
//       _idlePrev: [Circular],
//       ontimeout: [Function] },
//   _onTimeout: [Function],
//   _idleStart: Wed Jan 30 2013 08:23:39 GMT-0800 (PST) }

我想做的是将setTimeout整数存储到redis中,然后稍后将其清除。所以我尝试做这样的事情

var redis = require('redis');
var redisClient = redis.createClient();
var delay = setTimeout(function(){console.log("hey")}, 20000);
var envelope  = { 'body' : 'body text', 'from' : '[email protected]', 'to' : '[email protected]', 'subject' : 'test subject', 'delay' : delay };
redisClient.hset("email", JSON.stringify(envelope), redis.print);

但是我从JSON.stringify收到一个关于无法处理圆形对象的错误。有没有办法让setTimeout返回ID或将足够的对象存储到redis中以便以后可以清除?

javascript node.js redis settimeout
3个回答
1
投票
类似这样:

1
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.