Асинхронні ітератори
Оновлено: 28.04.2023
Асинхронний ітератор може викликати асинхронний код у своєму методі __anext__.
Асинхронні ітератори можна використовувати в операторі async for.
object.__aiter__(self) Має повертати об’єкт асинхронного ітератора.
object.__anext__(self) Має повернути waitable, що призводить до наступного значення ітератора. Має викликати помилку StopAsyncIteration після завершення ітерації.
Приклад асинхронного ітерованого об’єкта:
class Reader:
async def readline(self):
...
def __aiter__(self):
return self
async def __anext__(self):
val = await self.readline()
if val == b'':
raise StopAsyncIteration
return val