使用PHP的协程库amphp可以方便地支持异步编程。在循环中使用Promise可以更加高效地并发执行任务。下面是一个循环中处理Promise的例子:
use Amp\Promise;
use Amp\Loop;
use Amp\Delayed;
$promises = [];
for ($i = 1; $i <= 5; $i++) {
$promise = new Delayed(1000 * $i);
$promises[] = $promise;
}
Promise\all($promises)->onResolve(function () {
Loop::stop();
});
Loop::run();
echo "All promises resolved!" . PHP_EOL;
在这个例子中,我们循环创建Promise并将其存储在数组中。然后使用Promise\all将所有Promise组合到一个Promise中,并绑定一个onResolve回调,当所有Promise都完成时,回调函数被执行。最后使用Amphp的Loop来执行事件循环。
这个例子演示了如何在循环中管理Promise。我们可以在循环中动态地创建Promise,使我们能够更加高效地执行异步任务。