• Как сделать задержку в асинхронном запросе php?

    coderisimo
    @coderisimo
    Думаю, для асинхронности тут нужны сторонние решения. Например отличный Guzzle - Concurrent requests
    Guzzle
    use GuzzleHttp\Client;
    use GuzzleHttp\Promise;
    
    $client = new Client(['base_uri' => 'http://httpbin.org/']);
    
    $promises = [
        'image' => $client->getAsync('/image'),
        'png'   => $client->getAsync('/image/png'),
        'jpeg'  => $client->getAsync('/image/jpeg'),
        'webp'  => $client->getAsync('/image/webp')
    ];
    
    //  когда все запросы завершатся
    // если в одном из запросов ошибка
    $results = Promise\unwrap($promises);
    
    // когда все запросы завершатся , даже если были ошибки
    $results = Promise\settle($promises)->wait();
    
    // можно получить доступ к любому результату
    // function.
    echo $results['image']['value']->getHeader('Content-Length')[0]
    echo $results['png']['value']->getHeader('Content-Length')[0]
    Ответ написан
    2 комментария