官方的 asyncio 已经提供你所需要的 API 了: asyncio.as_completed(fs, *, loop=None, timeout=None) Return an iterator whose values, when waited for, are Future instances.
上面提到的 asyncio.wait 会等待所有的执行完,asyncio.as_completed 只要有一个执行完就立即返回,例如你要的效果: futures = [future1, future2, future3] for next_completed in asyncio.as_completed(futures): result = await next_completed if result is not None: break 这样在取结果的时候,其它的 future 还在执行,应该就是你要的效果。