擅长:python、mysql、java
<p>现在,您的<code>load_devices</code>是异步的,但是您正在等待对它的每个调用完成,然后再开始下一个调用。你知道吗</p>
<p>我会用这个来替换最后的<code>for</code>循环。你知道吗</p>
<pre><code>tasks = [load_devices(device) for device in deviceNames]
await asyncio.gather(*tasks)
</code></pre>
<p>这使得每个呼叫都可以等待,然后一次等待所有呼叫,而不是单独等待每个呼叫。你知道吗</p>
<p>(注意:<code>tasks</code>列表技术上包含<em>协同程序</em>,而不是<code>Task</code>对象,因为<code>asyncio.gather</code>自动执行所有<code>Task</code>创建。如果您真的愿意,您可以对每一个运行<code>asyncio.create_task</code>,但它不会改变结果。)</p>
<p>编辑:听起来像是要在非异步函数中执行此操作。在这种情况下:</p>
<pre><code>tasks = [load_devices(device) for device in deviceNames]
devices = loop.run_until_complete(asyncio.gather(*tasks))
</code></pre>