Python 为什么需要等待resp.text()?

Python 为什么需要等待resp.text()?,python,async-await,python-asyncio,Python,Async Await,Python Asyncio,在下面的Python异步代码示例中,为什么等待.text() 从响应中获取文本似乎是即时的,不会被阻塞。获取文本需要等待整个响应被下载,这可能需要时间进行大型响应或在慢速网络上。根据aiohttp的文档,该函数调用一个函数。在这方面,它似乎在等待完整的答复后才返回。这对于需要时间返回的大型有效负载非常有用。您永远不应该假设响应是瞬时的。想想看,什么会更快:发送请求,接收响应,重新调整函数响应,还是发送请求,返回函数响应?不采取中间步骤总是会超过采取中间步骤。代码没有一个固有的期望,即发送请求意味

在下面的Python异步代码示例中,为什么等待.text()


从响应中获取文本似乎是即时的,不会被阻塞。

获取文本需要等待整个响应被下载,这可能需要时间进行大型响应或在慢速网络上。

根据aiohttp的文档,该函数调用一个函数。在这方面,它似乎在等待完整的答复后才返回。这对于需要时间返回的大型有效负载非常有用。

您永远不应该假设响应是瞬时的。想想看,什么会更快:发送请求,接收响应,重新调整函数响应,还是发送请求,返回函数响应?不采取中间步骤总是会超过采取中间步骤。代码没有一个固有的期望,即发送请求意味着等待响应(即使只有一微秒)。在回应回来之前,它已经进入下一步。这就是等待的要点。好的,谢谢。我想既然它检查了状态码,它已经完整地下载了响应,你的意思是当我们传输HTTP内容时,我们首先得到HTTP头,然后开始下载主体?不下载整件东西?我知道在传输层,我们会一个包一个包地下载内容,但我认为在我们得到一个HTTP响应的所有包之前,我们无法解包。
async with aiohttp.ClientSession() as session:
    async with session.get('http://httpbin.org/get') as resp:
        return await resp.text()