擅长:python、mysql、java
<p>您可以使用任务的<code>set</code>:</p>
<pre><code>self._send_request_tasks = set()
</code></pre>
<p>使用<code>ensure_future</code>安排任务,并使用<code>add_done_callback</code>清理:</p>
<pre><code>def send_request(self, request: str) -> None:
task = asyncio.ensure_future(self._ws.send(request))
self._send_request_tasks.add(task)
task.add_done_callback(self._send_request_tasks.remove)
</code></pre>
<p>并等待任务的<code>set</code>完成:</p>
<pre><code>async def stop(self):
if self._send_request_tasks:
await asyncio.wait(self._send_request_tasks)
</code></pre>