до сути, если не получится на словах)
Есть задача слать на сервер и много. для отправки использую xhrhttprequest, post async. Но, при большом количестве async получаю ошибку ноды "слишком много открытых файлов".
Вставил костыль, ограничивающий количество одновременных async request'ов - переменная-счетчик, который если меньше лимита то полетел запрос и инкремент счетчика, в колбэке декремент. Если достиг лимита то ничего не делается.
Вот мечты рухнули на том месте, где лимит был достигнут, а ничего не обрабатывается, даже в devtools висят pending у запросов, при том что сервер на них давно ответил.
Если не через этот костыль, то как правильней организовать массовую отсылку асинхронных пост-запросов, с лимитом на одновременно активные запросы?
использовать вебсокеты?
сразу идея такая: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for-await...of https://lavrton.com/javascript-loops-how-to-handle-async-await-6252dd3c795/ есть еще библиотека для итераторов - http://fitzgen.github.io/wu.js/ я бы брал штуки по четыре из источника данных - маппил их на асинк запросы - а далее циклом for await удостоверялся бы, чтобы последующие не запускались раньше завершения текущих
Обсуждают сегодня