Как я могу убедиться в том, что будущее asyncio было начато, прежде чем продолжить? - PullRequest
0 голосов
/ 10 марта 2020

Я в основном хочу сделать что-то вроде этого:

future_started = asyncio.Event()

async def my_future():
    future_started.set()
    await asyncio.sleep(0)
    [...]

async def start_my_future():
    """Starts my_future() and only returns, after my_future() has been started."""

    asyncio.ensure_future(my_future())

    await future_started.wait()
    return

Есть ли более идиоматический c способ запланировать будущее, но убедитесь, что оно запущено, прежде чем продолжить?

РЕДАКТИРОВАТЬ: Я, вероятно, должен был добавить, что я бегу Python 3.6, так как было внесено много изменений в asyncio позже.

1 Ответ

0 голосов
/ 11 марта 2020

Использование asyncio.create_task вместо asyncio.ensure_future запустит его.

...