Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

160
Visualizações
esperar a que se complete todo lo prometido y luego ejecutar el resto del código

Tengo este código, quiero que el código se ejecute durante las primeras 3 pulsaciones, en la ejecución de la cuarta pulsación debe esperar a que se completen todas las promesas y luego continuar con la ejecución. No estoy seguro de si Promise.all es la forma correcta o si hay algún problema con la lógica.

 var counter = 1; function TaskRunner(concurrency) { this.concurrency = concurrency; this.waitList = []; } TaskRunner.prototype.push = async function (task) { let currentPromise = 'promise'+counter; if(counter <= this.concurrency) { this[currentPromise] = new Promise((resolve) => { resolve(task()); }); this[currentPromise].then(() => { console.log('completed: ', currentPromise); }).catch((e) => { console.log('failed: ', currentPromise); }); this.waitList.push(this[currentPromise]); counter++; return; } if (counter === this.concurrency + 1) { return await Promise.all([this.waitList]).then((values) => { console.log('all resolved: ', values); task(); counter++; }).catch(() => console.log('error')); } if (counter > this.concurrency) { counter++; task(); return; } return; }; function exampleTask() { setTimeout(() => console.log('done'), 5000); } var r = new TaskRunner(3); r.push(exampleTask); r.push(exampleTask); r.push(exampleTask); r.push(exampleTask); // want to wait here for all promise to complete and then continue r.push(exampleTask);
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda