foreach ($iterable as $key =>
$rfn) { if ($rfn instanceof RequestInterface
) { yield $key =>
$client->
sendAsync($rfn,
$opts);
} elseif (\
is_callable($rfn)) { yield $key =>
$rfn($opts);
} else { throw new \
InvalidArgumentException('Each value yielded by the iterator must be a Psr7\Http\Message\RequestInterface or a callable that returns a promise that fulfills with a Psr7\Message\Http\ResponseInterface object.'
);
} } };
$this->each =
new EachPromise($requests(),
$config);
} /**
* Get promise
*/
public function promise(): PromiseInterface
{ return $this->each->
promise();
} /**
* Sends multiple requests concurrently 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 concurrently.
* @param array $options Passes through the options available in
* {@see \GuzzleHttp\Pool::__construct}
*
* @return array Returns an array containing the response or an exception
* in the same order that the requests were sent.
*
* @throws \InvalidArgumentException if the event format is incorrect.
*/