如何在 AsyncIO 函数中使用多个 await

How to use multiple await in AsyncIO function

提问人:Albert Gregor 提问时间:10/21/2023 最后编辑:Albert Gregor 更新时间:10/22/2023 访问量:38

问:

self.ws = await self.client.ws_connect()#Aiohttp client session
self.rx_task = asyncio.get_event_loop().create_task(self._rx_task())
self.file_writer = await aiofiles.open('server_log.txt', 'wb')
self.rx_queue = asyncio.Queue()
    async def _rx_task(self):
        """
        Async function to collect the task and put into queue.
        """
        try:
            while True:
                msg = await self.ws.receive_json()
                #print(msg)
                await self.file_writer.write(msg)
                self.rx_queue.put_nowait(msg)
              
        except asyncio.CancelledError:
            pass

我卡在file_writer.write()上。我想在将 ws 收到的 msg 写入文件之前将其写入队列

python 异步 async-await python-asyncio

评论

3赞 Homer512 10/21/2023
1. “陷入困境”并不能真正告诉我们太多。发生了什么事情?2. 你没有提到任何额外的模块。从何而来?3. 请提供一个最小的、可重复的例子async_open
0赞 jsbueno 10/22/2023
另外,请修复此代码段中的缩进。如果其他语句只是说明性的,则在方法中正确缩进,添加类站以及所需的任何导入。除此之外,这段代码几乎没问题。self.xxxx = ....__init__
0赞 jsbueno 10/22/2023
我投票决定关闭这个问题,因为 OP 也在这里问了它:stackoverflow.com/questions/77334652/......

答: 暂无答案