Код Middle Потоки и буферы обновлено

Пачки из асинхронного итератора

Условие

Напиши асинхронный генератор batch(source, size): принимает асинхронный (или обычный) итерируемый источник и отдаёт массивы по size элементов, последний массив может быть короче. Пустые массивы не отдаются.

Применение: читать строки большого файла через for await и вставлять в БД пачками по 1000, не держа весь файл в памяти.

Что проверяют тесты

  • ровные пачки и хвост

  • асинхронный источник

  • пустой источник

  • ленивость: не читает лишнего

  • пачки это новые массивы

Как подойти

Подсказки: 2
  1. for await работает и с обычными итерируемыми.
  2. После yield создай новый массив, а не очищай старый через length = 0.

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.