Задать вопрос
@sublime_text3

Как игнорировать asyncio.sleep в асинхронном итераторе?

Я хотел бы спросить как сделать, так чтобы итератор не останавливался на await asyncio.sleep.
Мой ожидаемый результат:
1
3
ждёт 5 секунд...
2
Реальный результат:
1
ждёт 5 секунд...
2
3

Вот код
import asyncio


class AsyncIteratorWrapper():
    def __init__(self, obj):
        self._it = iter(obj)

    def __aiter__(self):
        return self

    async def __anext__(self):
        try:
            value = next(self._it)
        except StopIteration:
            raise StopAsyncIteration
        return value


async def it(sequence):
    async for letter in AsyncIteratorWrapper(sequence):
        print(letter)
        if letter == 2:
            await asyncio.sleep(5) # Игнорировать это


loop = asyncio.get_event_loop()
try:
    loop.run_until_complete(asyncio.gather(it([1, 2, 3])))
finally:
    loop.close()
  • Вопрос задан
  • 72 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 200 000 до 300 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
AST Москва
До 350 000 ₽
18 янв. 2025, в 09:18
5500 руб./за проект
18 янв. 2025, в 07:20
50000 руб./за проект
18 янв. 2025, в 03:12
1000 руб./за проект