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

152
Visualizações
JavaScript: espere a que una función termine de procesarse antes de pasar a la siguiente iteración del bucle

Me gustaría hacer que una función espere a que otra termine por completo. Tenemos esta función que procesa una lista de archivos y carga cada uno de ellos en la función loadFileIntoMemory.

Me gustaría que esta función esperara a que la función loadFileIntoMemory termine de manipular y trabajar en dicho archivo antes de pasar a la siguiente iteración del ciclo y llamarlo con el siguiente archivo.

 function processFiles(files) { for (let i = 0; i < files.length; i++) { console.log("Loading File into memory"); loadFileIntoMemory(files[i]); } }

Por lo tanto, cargaría el archivo número 1, esperaría a que todo esté hecho y listo, luego cargaría el archivo 2. No quiero que envíe archivos no deseados en la función loadFileIntoMemory sin que finalice el archivo anterior.

 function loadFileIntoMemory(file) { //create a dictionary using the file name originalValues[file.name] = {}; // create a variable with the file name to pass to storeOriginalValues and replaceOccurence var filename = file.name; // Start reading the file var reader = new FileReader(); reader.onload = function (file) { var arrayBuffer = reader.result; // Here we have the file data as an ArrayBuffer. dicomParser requires as input a // Uint8Array so we create that here var byteArray = new Uint8Array(arrayBuffer); dataSet = dicomParser.parseDicom(byteArray); // Store the original values into the dict storeOriginalValues(filename); // iterate through each metadata field and replace the original value with the de-identified value. console.log("De-identifying values") for (const [key, value] of Object.entries(elementsToRemove)) { var element = dataSet.elements[value]; if (typeof element !== "undefined") { for (var i = 0; i < element.length; i++) { dataSet.byteArray[element.dataOffset + i] = 32; } } } // Check if the Patient ID is still Present after the de-indentification process is completed replaceOccurences(filename, originalValues[filename].PatientID); // replaceOccurences(filename, originalValues[filename].PatientName); // replaceOccurences(filename, originalValues[filename].etc); // download the de-identified DICOM P10 bytestream console.log('Downloading File'); var blob = new Blob([dataSet.byteArray], { type: "application/dicom" }); var url = window.URL.createObjectURL(blob); window.open(url); window.URL.revokeObjectURL(url); }; reader.readAsArrayBuffer(file); }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Deberá convertir su loadFileIntoMemory en una Promesa.

 function loadFileIntoMemory(file) { return new Promise((resolve,reject) => { ...... reader.onload = function (file) { ...... return resolve(); //when all is done, resolve the promise. } }) }

Luego puede usar la función en un ciclo asíncrono/espera.

 const processFiles = async (files) => { for (let i = 0; i < files.length; i++) { console.log("Loading File into memory"); await loadFileIntoMemory(files[i]); } }
about 4 years ago · Juan Pablo Isaza Relatório
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