2

非同期リクエストにGuzzleを使用している間、各リクエストが完了するとすぐに同じコールバックを取得したい.

次のコードは機能しますが、意味をなさない可能性があると思います。

Guzzle は次のようなメソッドを提供しますPromise\settle($promises)->then($callback)->wait()が、リクエストごとに実行されますか?

<?php
require("vendor/autoload.php");

use GuzzleHttp\Client;
use GuzzleHttp\Promise;

$client = new Client(['base_uri' => 'http://httpbin.org/']);

// I want got callback immediately when each request done.
$callback = function($response) {
    echo $response->getBody();
};

$promises = [
    $client->getAsync('/delay/8')->then($callback),
    $client->getAsync('/delay/4')->then($callback),
    $client->getAsync('/delay/2')->then($callback),
    $client->getAsync('/delay/1')->then($callback),
];
Promise\settle($promises)->wait();
4

0 に答える 0