Den*_*aia 2 python event-loop python-asyncio
如果我使用(或 with ,其行为方式相同)安排回调loop.call_later()loop.call_at(),是否可以取消其执行?
为什么?假设我安排某件事从现在起一分钟后运行。但是,由于某些情况,代码决定中止该执行(因为不再需要它),或者决定重新安排另一个时间。问题是如何使用Python来实现它asyncio?
如果您熟悉 JavaScript,我正在寻找setTimeout()和的等效项clearTimeout()。
从您链接的文档中:
返回的实例
asyncio.TimerHandle可用于取消回调。
从 的文档来看asyncio.Handle, 是 的超类asyncio.TimerHandle:
取消()
取消回调。如果回调已被取消或执行,则此方法无效。
所以只需调用句柄的cancel方法即可。