【发布时间】:2014-02-13 21:08:31
【问题描述】:
基本上我的代码使用 foreach 循环为数组中的每个键执行一些代码。然而,问题在于这段代码访问的 API 只允许每半分钟 50 个请求。为了防止我的请求被阻止,我想在循环中添加一个计时器,以检查自本轮开始以来是否至少经过一秒钟,然后才能继续下一轮。 关于如何实现这一点的任何建议?
【问题讨论】:
标签: php loops foreach timeout wait
基本上我的代码使用 foreach 循环为数组中的每个键执行一些代码。然而,问题在于这段代码访问的 API 只允许每半分钟 50 个请求。为了防止我的请求被阻止,我想在循环中添加一个计时器,以检查自本轮开始以来是否至少经过一秒钟,然后才能继续下一轮。 关于如何实现这一点的任何建议?
【问题讨论】:
标签: php loops foreach timeout wait
最简单的方法是使用sleep
sleep(10); // 10 seconds for example
更多信息请访问PHP官方文档
Delays the program execution for the given number of seconds
【讨论】:
您是否尝试在循环中使用 sleep() 方法?
foreach($array as $key => $val){
sleep(1); //parameter in seconds
// keep rock'n rolling
}
【讨论】:
我发现 setTmeout 在这种情况下最有用,只要确保迭代之间有偏移延迟。
简单的 Angular 示例,
angular.forEach(someArray, index) {
$timeout(function() {
function1();
function2();
}, 100 * (index + 1) );
});
【讨论】: