Код Middle Потоки и буферы обновлено
Пачки из асинхронного итератора
Условие
Напиши асинхронный генератор batch(source, size): принимает асинхронный (или обычный) итерируемый источник и отдаёт массивы по size элементов, последний массив может быть короче. Пустые массивы не отдаются.
Применение: читать строки большого файла через for await и вставлять в БД пачками по 1000, не держа весь файл в памяти.
Что проверяют тесты
ровные пачки и хвост
асинхронный источник
пустой источник
ленивость: не читает лишнего
пачки это новые массивы
Как подойти
Подсказки: 2
for awaitработает и с обычными итерируемыми.- После
yieldсоздай новый массив, а не очищай старый черезlength = 0.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «Потоки и буферы»
- Запись с учётом backpressure
- Итоги платежей из CSV-выгрузки
- Слияние k отсортированных логов
- Топ эндпоинтов по access-логу с нормализацией маршрутов
- Сессии пользователей по потоку событий
- Код-ревью: выгрузка и загрузка больших файлов
- Загрузка файлов по 5 ГБ через Node-сервис
- Чем pipeline лучше pipe