Как заставить Guzzle Promises работать асинхронно?

Репро:

<?php
use GuzzleHttp\Promise\Promise;
require __DIR__ . '/vendor/autoload.php';

$promise1 = new Promise(function() use (&$promise1) {
print 'PROMISE 1 FIRED' . PHP_EOL;
sleep(2);

$promise1->resolve('foo');
});

$promise2 = new Promise(function() use (&$promise2) {
print 'PROMISE 2 FIRED' . PHP_EOL;
sleep(2);

$promise2->resolve('bar');
});

$promises = [$promise1, $promise2];
$results = \GuzzleHttp\Promise\unwrap($promises);

var_dump($results);

И свалка это:

//PROMISE 1 FIRED
//PROMISE 2 FIRED <-- fires after 2 seconds, and not immediately
//array(2) {
//    [0]=>
//  string(3) "foo"//    [1]=>
//  string(3) "bar"//}

Прямо сейчас, PROMISE 2 FIRED печатает через 2 секунды, а не сразу.

Как я могу получить его для печати сразу?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]