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

154
Visualizações
¿Cómo hago para que la interfaz de usuario se actualice en bucle usando forEach?
 Promise.all([ seperatingDMCM(), compileDirectMessage(), renderingResult(), addResultButtonListener(), ]);

Tengo una barra de progreso en mi interfaz de usuario y tengo 4 funciones mencionadas anteriormente, cada una de las cuales devuelve una Promesa. Tengo un bucle dentro de la primera función que separa DMCM(), que manejará todos mis datos. Quiero incrementar la barra de progreso con cada incremento del ciclo. Lo que significa que cada iteración del bucle debe ser asíncrona, por lo que la interfaz de usuario se actualizará y solo después se repetirá el bucle. Cuando el ciclo haya terminado, quiero devolver una promesa para que las otras funciones comiencen a ejecutarse. Me enfrento a un problema de que la barra de progreso no funciona como se supone y se invoca inmediatamente cuando seperatingDMCM() devuelve la promesa () y no de forma asíncrona. Esta barra de progreso se actualiza inmediatamente al 100 % en la página siguiente en lugar de actualizaciones en vivo con un pequeño incremento en la página actual.

Esta es mi función updateUI:

 function startProgressBar(i, arr) { return new Promise((resolve) => { setTimeout(() => { i = (i * 100) / arr.length; console.log(i); let elem = document.getElementById("progressBar"); if (i < 100) { elem.innerText = i + "%"; elem.style.width = i + "%"; elem.innerHTML = i + "%"; resolve(); } }, 0); }); }

Esta es mi primera función en la que quiero actualizar la interfaz de usuario por iteración de bucle

 function seperatingDMCM() { const contentType = "Content type"; return new Promise((resolve) => { rowObject.forEach(async (row, index) => { const creatingInts = () => { console.log("CreatedInt at", index); row["Date created (UTC)"] = ExcelDateToJSDate( row["Date created (UTC)"] ); if ( row[contentType] !== "DM" && row.hasOwnProperty("Falcon user name") ) { publicCommentsCount++; interaction = { row : row}; compiledInteractions.push(interaction); interaction = {}; } else { dmData.push(row); } }; startProgressBar(index, rowObject).then(creatingInts()); }); quickSort(dmData, "Falcon URL"); console.log("SORTED", dmData); console.log(workbook); console.log("Rows", rowObject); resolve(); }); }
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