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

226
Visualizações
¿Cómo almacenar datos de respuesta en una matriz fuera de la función actual en el nodo js?

¿Cómo almaceno todos los datos de resultados en la matriz pImages? Obtengo el resultado, pero en ese caso creo que la función asíncrona funcionará, pero no sé cómo aplicarla. por favor ayuda mi codigo es

 exports.addImage = (req, res, next) => { let imageArray = req.files.productImageArray; if (!req.files || Object.keys(req.files).length === 0) { return res.status(400).send("No files were uploaded."); } // here all images will be stored in array format let pImages = []; for (let f in imageArray) { imagekit.upload( { file: imageArray[f].data, //required fileName: imageArray[f].name, //required customMetadata: { color: req.body.productLabels[f], default: req.body.defaultProduct[f] } }, function(error, result) { if (error) console.log(error); else { console.log(result) pImages.push(result) } } ); } console.log("p", pImages); //output p [] };

Gracias de antemano

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede envolver imagekit.upload(...) en una promesa y luego esperar esta promesa.

Por lo tanto, su promesa debe resolverse o rechazarse en la devolución de llamada en imagekit.upload.

Tenga en cuenta que su método addImage ahora tiene que ser asíncrono para usar la palabra clave await y, por lo tanto, devuelve una promesa.

 exports.addImage = async (req, res, next) => { let imageArray = req.files.productImageArray; if (!req.files || Object.keys(req.files).length === 0) { return res.status(400).send("No files were uploaded."); } // here all images will be stored in array format let pImages = []; for (let f in imageArray) { try{ const pImage = await new Promise((resolve,reject)=>{ imagekit.upload( { file: imageArray[f].data, //required fileName: imageArray[f].name, //required customMetadata: { color: req.body.productLabels[f], default: req.body.defaultProduct[f] } }, function(error, result) { if (error){ reject(error); } else { resolve(result) } } ); }); pImages.push(pImage); } catch(e){ console.error(e); } } console.log("p", pImages); //output p [] };

Hay otras cosas en su código que no he abordado.

En la primera línea, está accediendo a req.files.productImageArray sin comprobar si está definido req.files. Esta comprobación se realiza a continuación. Por lo tanto, debe mover su primera línea después de esta verificación.

¿Es req.files.productImageArray una matriz como dice el nombre? Si es así, no debe usar un bucle for in, use un bucle for of en su lugar y en sus comprobaciones de cordura debe incluir Array.isArray (req.files.productImageArray).

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