擅长:python、mysql、java
<p>虽然通常您可以将<code>Future</code>替换为<code>Event</code>,如果您不关心将来将填充的数据,我认为在这种情况下是不正确的。在</p>
<p>在代码中,<code>self._waiter</code>不仅用于指示唤醒事件,还用于指示发生的<a href="https://github.com/python/cpython/blob/3.6/Lib/asyncio/streams.py#L391" rel="nofollow noreferrer">indicate exception</a>。<code>set_exception</code>到{<cd1>}意味着这个异常将在等待未来的代码中引发:</p>
<pre><code>#
waiter.set_exception(exc) # Exception set here...
#
self._waiter = self._loop.create_future()
try:
yield from self._waiter # ... will be raised here and propagated to outer code
finally:
self._waiter = None
</code></pre>
<p>如果将<code>self._waiter</code>更改为<code>Event</code>,则无法实现此目标。在</p>