Как я могу ограничить параллелизм Q обещания?
Как мне написать метод, который ограничивает параллелизм Q обещания?
Например, у меня есть методspawnProcess
, Возвращает обещание Q
Я хочу, чтобы одновременно вызывалось не более 5 процессов, но прозрачно для вызывающего кода.
Мне нужно реализовать функцию с подписью
function limitConcurrency(promiseFactory, limit)
что я могу назвать как
spawnProcess = limitConcurrency(spawnProcess, 5);
// use spawnProcess as usual
Я уже начал работать над своей версией, но мне интересно, есть ли у кого-то лаконичная реализация, с которой я могу проверить.