У меня есть асинхронная функция, и я хочу запустить еще одну "параллельно".Но мне нужно сделать это в определенный момент внутри этой первой функции .
Я видел много примеров, но все они запускали две функции одновременно, иэто не то, что я хочу.
Я создал этот простой пример, чтобы проиллюстрировать, чего я хочу достичь (и что я пытался):
import asyncio
import time
async def print_letters():
for letter in ['A', 'B', 'C', 'D']:
print(letter)
time.sleep(1)
async def print_numbers(loop):
for number in range(1, 7):
if(number == 3):
# same result with create_task
# loop.create_task(print_letters())
asyncio.ensure_future(print_letters())
print(number)
time.sleep(1)
loop = asyncio.get_event_loop()
loop.run_until_complete(print_numbers(loop))
print('End')
Текущий вывод:
1, 2, 3, 4, 5, 6, A, B, C, D, End
Желаемый результат будет примерно таким:
1, 2, 3, A, 4, B, 5, C, 6 D, End
Я пробовал другие вещи (например, asyncio.wait
), ноникто не работал, как ожидалось.Также документацию непросто понять, когда вы довольно новичок в Python asyncio
.
Если вопрос неясен или что-то отсутствует, дайте мне знать, чтобы я мог его отредактировать.Я ценю любую помощь.
Python 3.6.2