У меня есть код, который выполняет итерацию над списком, который был запрошен из базы данных и делает HTTP-запрос для каждого элемента в этом списке. Этот список иногда может быть достаточно большим (в тысячах), и я хотел бы удостовериться, что не нахожусь на веб-сервере с тысячами параллельных HTTP-запросов.
Сокращенная версия этого кода в настоящее время выглядит примерно так:
function getCounts() {
return users.map(user => {
return new Promise(resolve => {
remoteServer.getCount(user) // makes an HTTP request
.then(() => {
/* snip */
resolve();
});
});
});
}
Promise.all(getCounts()).then(() => { /* snip */});
Этот код работает на Node 4.3.2. Чтобы повторить, можно ли Promise.all
управлять так, чтобы выполнялось только определенное число Promises в любой момент времени?