Оператор async for
Оновлено: 24.04.2023
async_for_stmt ::= "async" for_stmt
asynchronous iterable надає метод __aiter__, який безпосередньо повертає asynchronous iterator, який може викликати асинхронний код у своєму методі __anext__.
Оператор async for дозволяє зручно виконувати ітерації над асинхронними ітераціями.
Наступний код:
async for TARGET in ITER:
SUITE
else:
SUITE2
Семантично еквівалентний:
iter = (ITER)
iter = type(iter).__aiter__(iter)
running = True
while running:
try:
TARGET = await type(iter).__anext__(iter)
except StopAsyncIteration:
running = False
else:
SUITE
else:
SUITE2
See also __aiter__() and __anext__() for details.
Це SyntaxError, якщо використовувати оператор async for поза тілом функції співпрограми.