不乱于心,不困于情。
不畏将来,不念过往。如此,安好。

asyncio 报错处理

示例

import asyncio
async def func(id):
    print(id)
    
tasks = []
loop = asyncio.get_event_loop()
for id in range(10):
    tasks.append(func(id))

loop.run_until_complete(tasks)

疑难杂症

其他线程中使用会报错

RuntimeError: There is no current event loop in thread ‘LoopThread’.

需要新建一个loop

import asyncio
async def func(id):
    print(id)

tasks = []
new_loop = asyncio.new_event_loop()
asyncio.set_event_loop(new_loop)
for id in range(10):
    tasks.append(func(id))

new_loop.run_until_complete(asyncio.wait(tasks))

如果函数内没有await, 会报错

TypeError: An asyncio.Future, a coroutine or an awaitable is required

所以运行前加一个asyncio.wait

赞(0) 打赏
未经允许不得转载:seo优化_前端开发_渗透技术 » asyncio 报错处理

相关推荐

  • 暂无文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏