Асинхронный итератор

У меня есть итератор, который получает прокси из другого сервиса.

class StaticProxyIterator:
    def __init__(self, pa_client):
        self.pa_client = pa_client

    def __aiter__(self):
        return self

    async def __anext__(self):
        m = proxy_agent.GetProxies()
        resp, status = await self.pa_client.request(m)
        check_status(status, 200)
        empty_response(resp)
        for p in resp:
            yield p    

Этот итератор я хочу вызывать так, в рамках асинхронной функции:

async def execute():
    invalid_statuses = []
    content = None
    async for p in self.__proxy_it:
        print(p)

Но я получаю это:

TypeError: 'async for' received an invalid object from anext: async_generator

В чём причина и как побороть? В ходе экспериментов, я выяснил, что проблема в наличии самого итератора, т.е. в слове yield. Если его убрать, то всё работает.


Ответы (0 шт):