async def read_response(self):
        """Read the response from a previously sent command"""
        try:
            async with self._lock:
                async with async_timeout.timeout(self.socket_timeout):
                    response = await self._parser.read_response()
        except asyncio.TimeoutError:
            await self.disconnect()
            raise TimeoutError(f"Timeout reading from {self.host}:{self.port}")
        except OSError as e:
            await self.disconnect()
            raise ConnectionError(
                f"Error while reading from {self.host}:{self.port} : {e.args}"
            )
        except BaseException:
            await self.disconnect()
            raise

        if self.health_check_interval:
            self.next_health_check = (
                asyncio.get_event_loop().time() + self.health_check_interval
            )

        if isinstance(response, ResponseError):
            raise response from None
        return response
Read the response from a previously sent command
aioredis/connection.py