Как в JS реализовывается механизм синхронизации множественных параллельных запросов?
У нас есть 10 запросов, но мы одновременно можем выполнять не более 3.
Допустим, мы можем в цикле одновременно запустить сразу 3 запроса, но как нам после каждого выполненного запроса запускать новый при этом по окончанию последнего, все данные вывести одним результатом?
Ты делаешь метод выполнения 'следующего запроса' (он будет смотреть список задач и исполнять первый не выполненный, либо вернет - все закончилось) асинхронным async function do_next()..., и в цикле просто вызываешь этот метод await do_next() пока не вернется все закончилось, параллельно можно запустить таймер таймаута, который завершит все невыполненное.