Quantidade de promessas do acelerador abertas em um determinado momento
O Typecript a seguir executa cada chamada paradoSomething(action)
um por vez. (O que significa que o segundo item da lista não recebe uma chamada até que o primeiro seja concluído).
async performActionsOneAtATime() {
for (let action of listOfActions) {
const actionResult = await doSomethingOnServer(action);
console.log(`Action Done: ${actionResult}`);
}
}
Este enviará todas as solicitações para o servidor imediatamente (sem esperar por nenhuma resposta):
async performActionsInParallel() {
for (let action of listOfActions) {
const actionResultPromise = doSomething(action);
actionResultPromise.then((actionResult) => {
console.log(`Action Done: ${actionResult}`);
});
}
}
Mas o que eu realmente preciso é uma maneira de estrangulá-los. Talvez tenha 10 ou 20 chamadas abertas por vez. (Um de cada vez é muito lento, mas todos os 600 sobrecarregam o servidor.)
Mas estou tendo dificuldade para descobrir isso.
Alguma sugestão de como posso acelerar o número de chamadas para o X abertas por vez?
(Esta pergunta usa TypeScript, mas eu ficaria bem com uma resposta JavaScript ES6.)