关于await关键词何时用

87 阅读1分钟

asyncioaiohttp 中,使用 await 关键字来挂起协程是为了处理异步操作。尽管你在调用 session.get(url) 时已经使用了 await,但 rsp.text() 也是一个异步操作,因此你需要再次使用 await

解释

  1. session.get(url):

    • 这是一个异步操作,返回一个 Response 对象。由于是异步的,你需要使用 await 来等待它完成。
  2. rsp.text():

    • rsp.text() 也是一个异步方法,用于获取响应的文本内容。它的实现方式可能涉及到读取网络数据或文件,这些都是 IO 操作,因此需要使用 await 来等待其完成。

总结

每当你调用一个异步函数(返回一个协程)时,你都需要使用 await 来等待其完成。这包括:

  • aiohttp.ClientSession 中获取响应的请求(如 session.get())。
  • Response 对象中获取内容(如 rsp.text())。

这保证了你的代码能够正确地处理异步 IO 操作,而不会阻塞事件循环。