我该如何限制一个函数每秒只运行10次,但当有新的“位置”可用时就继续执行呢?这意味着我们会尽快调用函数10次,并且当距离任何函数调用已经过去1秒时,我们可以再做一次调用。
这个描述可能有点混乱 - 但是答案将是在给定速率限制下完成X个API调用的最快方式。
例如: 这里有一个例子,循环遍历字母表以打印每个字母。 我们怎样才能将其限制为每秒只调用10次
一个好的解决方案不会强制将每个调用间隔100ms。这使得10个调用的最短运行时间为1秒,而实际上你可以几乎同时完成这些调用,并在一小部分时间内完成。
例如: 这里有一个例子,循环遍历字母表以打印每个字母。 我们怎样才能将其限制为每秒只调用10次
printLetter
? 我仍然希望以适当的速率循环遍历所有字母。function printLetter(letter){
console.log(letter);
}
var alphabet = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "X", "Y", "Z"];
// How can I limit this to only run 10 times per second, still loop through every letter, and complete as fast as possible (i.e. not add a hard spacing of 100ms)?
alphabet.forEach(function(letter){
printLetter(letter);
});
一个好的解决方案不会强制将每个调用间隔100ms。这使得10个调用的最短运行时间为1秒,而实际上你可以几乎同时完成这些调用,并在一小部分时间内完成。
setInterval
函数。 - Lucas Pottersky