我正在读一本名为"Hands on node.js"的书,作者是"Pedro Teixiera"。
我试图在那本书中执行一个相同的程序,它将调用一个函数,并且该函数在某个时间间隔内一次又一次地递归调用相同的函数。但是当我执行时,它只给出一次"1"并停止请帮助我弄清楚为什么它无法再次调用相同的函数。示例程序如下:
var schedule = function(timeout, callbackfunction) {
return {
start: function() {
setTimeout(callbackfunction, timeout)
}
};
};
(function()
{
var timeout = 10000; // 1 second
var count = 0;
schedule(timeout, function doStuff() {
console.log(++ count);
schedule(timeout, doStuff);
}).start(timeout);
})();
您实际上不会再次调用该函数。 start()
是启动计时器的部分。
schedule( timeout, function doStuff() {
console.log( ++count );
schedule( timeout, doStuff ).start(); // <--- added .start() here
}).start();
(另请注意,start()
函数不带参数。
一次又一次地间隔一段时间
不,为此您将使用setInterval
而不是setTimeout
.
它只给出一次"1"并停止
是的,您的doStuff
函数不会设置新的超时。您的奇数schedule
函数需要.start()
编辑!