繁体   English   中英

延时后调用功能,然后更快

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM