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 образец?