在 asyncio 和 aiohttp 中,使用 await 关键字来挂起协程是为了处理异步操作。尽管你在调用 session.get(url) 时已经使用了 await,但 rsp.text() 也是一个异步操作,因此你需要再次使用 await。
解释
-
session.get(url):- 这是一个异步操作,返回一个
Response对象。由于是异步的,你需要使用await来等待它完成。
- 这是一个异步操作,返回一个
-
rsp.text():rsp.text()也是一个异步方法,用于获取响应的文本内容。它的实现方式可能涉及到读取网络数据或文件,这些都是 IO 操作,因此需要使用await来等待其完成。
总结
每当你调用一个异步函数(返回一个协程)时,你都需要使用 await 来等待其完成。这包括:
- 从
aiohttp.ClientSession中获取响应的请求(如session.get())。 - 从
Response对象中获取内容(如rsp.text())。
这保证了你的代码能够正确地处理异步 IO 操作,而不会阻塞事件循环。