[英]Call function after time delay and then faster
我知道setInterval( foo, n)
它每n
秒调用一次foo
。 但是,我该怎么办呢? 就像第一次之后一样,该函数将在n-1
秒后再调用n-2
秒,依此类推。
请改用setTimeout
。 它将使用新的超时来调用函数,该超时将是前一个-x ms,依此类推。 我添加了停止条件,因此它不会永远运行。
function recall(n) { console.log(n); n -= 100; n < 0 || setTimeout(function() { recall(n); }, n); } recall(1000);
在这种情况下,您可以递归使用setTimout
:
function foo () { console.log(new Date()); } function fasterAndFaster(fn, seconds) { if (seconds <= 0) { return; } setTimeout(function () { fn(); // Recursive call fasterAndFaster(fn, seconds - 1); }, seconds * 1000); } fasterAndFaster(foo, 5); console.log("Wait 5 seconds");
您可以将setTimeout(foo, n)
与foo.bind
结合使用,然后递归调用函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.