static function makeRequest(\Psr\Http\Message\RequestInterface $request, ?array $requestOptions = null) {
        $client = static::getHTTPClient();
        
        if(!empty($requestOptions)) {
            if(isset($requestOptions['http_errors'])) {
                $client = $client->withOptions(array(
                    'obeySuccessCode' => !empty($requestOptions['http_errors'])
                ));
            }
            
            if(isset($requestOptions['timeout'])) {
                $client = $client->withOptions(array(
                    'timeout' => ((float) $requestOptions['timeout'])
                ));
            }
            
            try {
                $request = static::applyRequestOptions($request, $requestOptions);
            } catch (\RuntimeException $e) {
                return \React\Promise\reject($e);
            }
        }
        
        return $client->send($request);
    }
static function makeRequest(\Psr\Http\Message\RequestInterface $request, ?array $requestOptions = null) {
        $client = static::getHTTPClient();
        
        if(!empty($requestOptions)) {
            if(isset($requestOptions['http_errors'])) {
                $client = $client->withOptions(array(
                    'obeySuccessCode' => !empty($requestOptions['http_errors'])
                ));
            }
            
            if(isset($requestOptions['timeout'])) {
                $client = $client->withOptions(array(
                    'timeout' => ((float) $requestOptions['timeout'])
                ));
            }
            
            try {
                $request = static::applyRequestOptions($request, $requestOptions);
            } catch (\RuntimeException $e) {
                return \React\Promise\reject($e);
            }
        }
        
        return $client->send($request);
    }
static function makeRequest ( \ Psr \ Http \ Message \ RequestInterface $ request , ? array $ requestOptions = null ) { $ client = static :: getHTTPClient ( ) ; if ( ! empty ( $ requestOptions ) ) { if ( isset ( $ requestOptions [ 'http_errors' ] ) ) { $ client = $ client -> withOptions ( array ( 'obeySuccessCode' => ! empty ( $ requestOptions [ 'http_errors' ] ) ) ) ; } if ( isset ( $ requestOptions [ 'timeout' ] ) ) { $ client = $ client -> withOptions ( array ( 'timeout' => ( ( float ) $ requestOptions [ 'timeout' ] ) ) ) ; } try { $ request = static :: applyRequestOptions ( $ request , $ requestOptions ) ; } catch ( \ RuntimeException $ e ) { return \ React \ Promise \ reject ( $ e ) ; } } return $ client -> send ( $ request ) ; }
Makes an asynchronous request. Resolves with an instance of ResponseInterface.

The following request options are supported:
```
array(
'http_errors' => bool, (whether the HTTP client should obey the HTTP success code)
'multipart' => array, (multipart form data, an array of `[ 'name' => string, 'contents' => string|resource, 'filename' => string ]`)
'json' => mixed, (any JSON serializable type to send with the request as body payload)
'query' => string, (the URL query string to set to)
'headers' => string[], (HTTP headers to set)
'timeout' => float, (after how many seconds the request times out)
)
```

@param \Psr\Http\Message\RequestInterface  $request
@param array|null                          $requestOptions
@return \React\Promise\ExtendedPromiseInterface
@see \Psr\Http\Message\ResponseInterface
Makes an asynchronous request . Resolves with an instance of ResponseInterface .