Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- use Amp\Deferred;
- use Amp\Loop;
- use function Amp\Promise\all;
- use function Amp\Promise\wait;
- Loop::run(function () {
- /**
- * Какая-то асинхронная функция, возвращает Promise
- */
- $fnWait = function($num, $sec){
- $deferred = new Deferred();
- Loop::delay($msDelay = $sec * 1000, function () use ($deferred, $num, $sec) {
- $result = "resolve $num task for $sec seconds" . PHP_EOL;
- echo $result;
- $deferred->resolve($result);
- });
- return $deferred->promise();
- };
- $arrArgs = [7,5,3,4,8];
- $promises = [];
- foreach ($arrArgs as $num => $args){
- $promises[] = $fnWait($num, $args);
- }
- $results = wait(all($promises));
- var_dump($results);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement