如何等待多个异步 for 循环

时间:2021-05-16 16:29:43

标签: python python-asyncio

在一个函数中可以有多个 async for 定义吗?当使用多个 for 循环时,下面的代码目前不会超过第一个条件,我想知道是否可以实现这一点而不必将这些 for 循环分解为多个函数

    async def on_connection_toggle(self, ib: IB, callback):
        #Fired. functions below not fired
        async for _ in ib.connectedEvent:
            await callback()
        
        # Not fire
        async for _ in ib.secondary():
            await callback()

下面的方法按预期工作,但希望避免创建多个函数

   # Works as expected
    async def on_connection_toggle(self, ib: IB, callback):
        await self.listen_connect(ib, callback)
        await self.listen_secondary(ib, callback)

    async def listen_connect(self, ib, callback):
        async for _ in ib.connectedEvent:
            await callback()

    async def listen_secondary(self, ib, callback):
        async for _ in ib.connectedEvent:
            await callback()

0 个答案:

没有答案