如何取消asyncio的loop.call_later()?

Den*_*aia 2 python event-loop python-asyncio

如果我使用(或 with ,其行为方式相同)安排回调loop.call_later()loop.call_at(),是否可以取消其执行?

为什么?假设我安排某件事从现在起一分钟后运行。但是,由于某些情况,代码决定中止该执行(因为不再需要它),或者决定重新安排另一个时间。问题是如何使用Python来实现它asyncio

如果您熟悉 JavaScript,我正在寻找setTimeout()和的等效项clearTimeout()

use*_*ica 5

从您链接的文档中:

返回的实例asyncio.TimerHandle可用于取消回调。

从 的文档来看asyncio.Handle, 是 的超类asyncio.TimerHandle

取消()

取消回调。如果回调已被取消或执行,则此方法无效。

所以只需调用句柄的cancel方法即可。