是否可以限制 setInterval 在 javascript 中触发的次数?
原文由 Probocop 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否可以限制 setInterval 在 javascript 中触发的次数?
原文由 Probocop 发布,翻译遵循 CC BY-SA 4.0 许可协议
我个人比较喜欢用 setTimeout()
隔开来达到同样的效果
// Set a function to run every "interval" seconds a total of "x" times
var x = 10;
var interval = 1000;
for (var i = 0; i < x; i++) {
setTimeout(function () {
// Do Something
}, i * interval)
}
不需要清理 clearInterval()
您可以将它括起来以避免变量泄漏,它看起来很干净:)
// Definition
function setIntervalLimited(callback, interval, x) {
for (var i = 0; i < x; i++) {
setTimeout(callback, i * interval);
}
}
// Usage
setIntervalLimited(function() {
console.log('hit'); // => hit...hit...etc (every second, stops after 10)
}, 1000, 10)
原文由 NDavis 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13k 阅读
7 回答2.2k 阅读
3 回答1.3k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答1.1k 阅读
您可以在 x 调用后调用
clearInterval()
:为了避免全局变量,上述的改进是:
然后你可以调用新的
setInvervalX()
函数如下: