public static function batch(
        ClientInterface $client,
        $requests,
        array $options = []
    ) {
        $hash = new \SplObjectStorage();
        foreach ($requests as $request) {
            $hash->attach($request);
        }

        // In addition to the normally run events when requests complete, add
        // and event to continuously track the results of transfers in the hash.
        (new self($client, $requests, RequestEvents::convertEventArray(
            $options,
            ['end'],
            [
                'priority' => RequestEvents::LATE,
                'fn'       => function (EndEvent $e) use ($hash) {
                    $hash[$e->getRequest()] = $e->getException()
                        ? $e->getException()
                        : $e->getResponse();
                }
            ]
        )))->wait();

        return new BatchResults($hash);
    }
public static function batch(
        ClientInterface $client,
        $requests,
        array $options = []
    ) {
        $hash = new \SplObjectStorage();
        foreach ($requests as $request) {
            $hash->attach($request);
        }

        // In addition to the normally run events when requests complete, add
        // and event to continuously track the results of transfers in the hash.
        (new self($client, $requests, RequestEvents::convertEventArray(
            $options,
            ['end'],
            [
                'priority' => RequestEvents::LATE,
                'fn'       => function (EndEvent $e) use ($hash) {
                    $hash[$e->getRequest()] = $e->getException()
                        ? $e->getException()
                        : $e->getResponse();
                }
            ]
        )))->wait();

        return new BatchResults($hash);
    }
public static function batch ( ClientInterface $ client , $ requests , array $ options = [ ] ) { $ hash = new \ SplObjectStorage ( ) ; foreach ( $ requests as $ request ) { $ hash -> attach ( $ request ) ; } // In addition to the normally run events when requests complete, add // and event to continuously track the results of transfers in the hash. ( new self ( $ client , $ requests , RequestEvents :: convertEventArray ( $ options , [ 'end' ] , [ 'priority' => RequestEvents :: LATE , 'fn' => function ( EndEvent $ e ) use ( $ hash ) { $ hash [ $ e -> getRequest ( ) ] = $ e -> getException ( ) ? $ e -> getException ( ) : $ e -> getResponse ( ) ; } ] ) ) ) -> wait ( ) ; return new BatchResults ( $ hash ) ; }
Sends multiple requests in parallel and returns an array of responses
and exceptions that uses the same ordering as the provided requests.

IMPORTANT: This method keeps every request and response in memory, and
as such, is NOT recommended when sending a large number or an
indeterminate number of requests concurrently.

@param ClientInterface $client   Client used to send the requests
@param array|\Iterator $requests Requests to send in parallel
@param array           $options  Passes through the options available in
{@see GuzzleHttp1\Pool::__construct}

@return BatchResults Returns a container for the results.
@throws \InvalidArgumentException if the event format is incorrect.
Sends multiple requests in parallel and returns an array of responses and exceptions that uses the same ordering as the provided requests .