public function get(
        $uri,
        array $parameters = [],
        array $headers = [],
        string $protocol = '1.1'
    ): ResponseInterface {
        $promise = $this->getAsync($uri, $parameters, $headers, $protocol);
        $promise->wait();

        if ($promise->getState() === Promise::REJECTED) {
            throw $promise->getException();
        }

        return $promise->getResponse();
    }