Как правильно Pythoni c способ написать асинхронный генератор? - PullRequest
0 голосов
/ 27 апреля 2020

Reader.read () должен бесконечно слушать Api.listen () , который в свою очередь бесконечно слушает открытый веб-сокет. Как правильно написать следующий код?

class Api:
    async def listen(self):
        async with websockets.connect(URL) as sock:
            while True:
                yield await sock.recv()

class Reader:
    async def read(self):
        api = Api()
        while True:
            data = await api.listen()
            ...

reader = Reader()
reader.read()

Не удивительно, этот код выдает ошибку:

TypeError: object async_generator can't be used in 'await' expression

Должен ли я реализовать что-то вроде Api.Listen.__await__()?

Как правильно кодировать такой asyn c read-yield образец?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...