PluginProbe
DecaLog / 4.4.0
DecaLog v4.4.0
3.0.2 3.1.0 3.10.0 3.2.0 3.3.0 3.4.0 3.4.1 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.6.3 3.7.0 3.7.1 3.8.0 3.9.0 3.9.1 4.0.0 4.1.0 4.2.0 4.3.0 4.3.1 4.4.0 4.5.0 All 75 releases
decalog / includes / libraries / http / client-common / HttpAsyncClientEmulator.php

HttpAsyncClientEmulator.php in DecaLog 4.4.0, at includes/libraries/http/client-common/HttpAsyncClientEmulator.php

40 lines 881 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Http\Client\Common;
6
7 use Http\Client\Exception;
8 use Http\Client\Promise;
9 use Psr\Http\Message\RequestInterface;
10 use Psr\Http\Message\ResponseInterface;
11
12 /**
13 * Emulates an HTTP Async Client in an HTTP Client.
14 *
15 * @author Márk Sági-Kazár <mark.sagikazar@gmail.com>
16 */
17 trait HttpAsyncClientEmulator
18 {
19 /**
20 * {@inheritdoc}
21 *
22 * @see HttpClient::sendRequest
23 */
24 abstract public function sendRequest(RequestInterface $request): ResponseInterface;
25
26 /**
27 * {@inheritdoc}
28 *
29 * @see HttpAsyncClient::sendAsyncRequest
30 */
31 public function sendAsyncRequest(RequestInterface $request)
32 {
33 try {
34 return new Promise\HttpFulfilledPromise($this->sendRequest($request));
35 } catch (Exception $e) {
36 return new Promise\HttpRejectedPromise($e);
37 }
38 }
39 }
40