await asyncio.gather(*[handle_event(event) for event in events])
RuntimeError: Task got bad yield: <coroutine object handle_event at 0x7f9e576c12a0>
await asyncio.gather([handle_event(event) for event in events])
events = await client.get_admin_log(chan)
print("start for loop")
tasks = [handle_event(event) for event in events]
await asyncio.gather(*tasks)
*
и распаковки списка как аргумент функции, я не думаю, что этот код можно считать хорошим, читаемым, очевидным или понятным. Может быть, есть ещё один способ? events = await client.get_admin_log(chan)
print("start for loop")
for event in events:
await asyncio.gather(handle_event(event))
async def handle_event(event):
print(event.user_id)
await asyncio.sleep(5)
print(f"{event.user_id} awaited")
def main():
events = await client.get_admin_log(chan)
print("start for loop")
for event in events:
asyncio.create_task(handle_event(event))
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
start for loop
292054100
419898034
694851875
743258597
...