/** * Send asynchronous guzzle request * * @param Psr7Request $request * @param \Tebru\Retrofit\Http\Callback $callback * @return null */ public function sendAsync(Psr7Request $request, Callback $callback) { $request = new Request($request->getMethod(), (string) $request->getUri(), $request->getHeaders(), $request->getBody(), ['future' => true]); /** @var FutureInterface $response */ $response = $this->client->send($request); $this->promises[] = $response->then(function (ResponseInterface $response) { return new Psr7Response($response->getStatusCode(), $response->getHeaders(), $response->getBody(), $response->getProtocolVersion(), $response->getReasonPhrase()); })->then($callback->success(), $callback->failure()); }