Как пропустить ожидание asyncio.sleep(), при этом можно было бы выбирать выполнять ли следующий код или нет
У меня есть следующий код:
import asyncio
async def test():
print("Var1")
await asyncio.sleep(10) #Первый таймер
print("Var2")
test()
asyncio.sleep(3)
#Прервание таймера
Там, где написано "Прерывание таймера 1", нужно сделать так, чтобы первый таймер пропустился и не надо было ждать следующие 7 секунд. Но. Мне надо сделать так, чтобы можно было выбирать - выполнять ли дальнейший ход кода или нет. Пожалуйста, помогите сделать такое.
Ответы (1 шт):
Автор решения: eri
→ Ссылка
import asyncio
async def test():
print("Var1")
await asyncio.sleep(10) #Первый таймер
print("Var2")
loop = asyncio.get_event_loop()
task = loop.create_task(test())
loop.run_until_complete(asyncio.sleep(3))
task.cancel()
Асинхронные функции должны быть запущенны на цикле событий, чтоб работать. Это добавил в код. Если код уже выполняется синхронно - используйте asyncio.create_task и await вместо run_until_complete
То что Вам нужно - это прерывание таска через метод cancel()