基本上,我的代码使用foreach循环为数组中的每个键执行一些代码。但是,问题在于这段代码访问的 API 每半分钟只允许 50 个请求。为了防止我的请求被阻止,我想在循环中添加一个计时器,用于检查自本轮开始以来是否至少已经过去了一秒钟,然后才能继续下一轮。关于如何实现这一点的任何建议?
最简单的方法是使用sleep
sleep(10); // 10 seconds for example
有关更多信息,请访问 PHP 官方文档
将程序执行延迟给定的秒数
您是否尝试在循环中使用 sleep() 方法?
foreach($array as $key => $val){
sleep(1); //parameter in seconds
// keep rock'n rolling
}
我发现setTmeout在这种情况下最有用,只要确保迭代之间有偏移延迟即可。
简单角度示例,
angular.forEach(someArray, index) {
$timeout(function() {
function1();
function2();
}, 100 * (index + 1) );
});