0

Как использовать async/await в Python 3.5?

10

Не могу запустить этот простой пример кода:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import time

async def foo():
    await time.sleep(1)

foo()

При выполнении возникают следующие предупреждения:

RuntimeWarning: coroutine 'foo' was never awaited

Как правильно использовать асинхронные функции в Python, чтобы избежать этой ошибки?

1 ответ(ов)

0

Если у вас уже запущен цикл событий (с другими задачами), вы можете добавить новые задачи с помощью:

asyncio.ensure_future(foo())

В противном случае вы можете столкнуться с ошибкой:

The event loop is already running

Это происходит из-за того, что попытка запустить асинхронную функцию, когда цикл событий уже работает, вызывает конфликт. Использование asyncio.ensure_future() позволяет безопасно добавить новую задачу в уже работающий цикл.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь