Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
Verifique el entorno usandopromise.all()

Tengo que escribir el script de Node.js usando promise.all() que comprobará que el entorno tiene docker, git, npm, nvm y node.js. Para cada herramienta, escriba en stdout la versión de la herramienta. Si algunas herramientas no existen, escriba al mensaje stderr al respecto y finalice el proceso con el código de salida correcto.

Mi código se ve así:

 const util = require("util"); const exec = util.promisify(require("child_process").exec); async function getVersion(env) { try { const { stdout } = await exec(env); console.log(stdout); } catch (error) { console.error(error.stderr); } } (async function () { const fileVersion = [ "node --version", "docker --version", "nvm version", "git --version", "npm --version", ]; const results = await Promise.all(fileVersion); for (const element of results) { getVersion(element); } })();

Sé que en ese código promise.all() no está jugando ningún papel, no estoy familiarizado con promise.all() y, por favor, ¿alguien podría mostrarme un ejemplo de cómo hacerlo?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El método Promise.all() en realidad toma una iteración de promesas como entrada (en su código solo está pasando una matriz de cadenas) y devuelve una única promesa que se resuelve en una matriz de los resultados de las promesas de entrada pasadas al función. Esta promesa devuelta se resolverá cuando se hayan resuelto todas las promesas pasadas (o si el iterable pasado no contiene promesas como en su caso). También se rechazará inmediatamente después de que cualquiera de las promesas de entrada pasadas se rechace o las no promesas arrojen un error, y se rechazará con este primer mensaje de rechazo/error.

Si realmente desea beneficiarse del método Promise.all() , debe pasarle una serie de promesas en lugar de la serie de cadenas que está pasando en este momento.

 const util = require("util"); const exec = util.promisify(require("child_process").exec); async function getVersion(env) { try { const { stdout } = await exec(env); console.log("env is" + stdout); return stdout; } catch (error) { console.error(error.stderr); } } (async function () { const fileVersion = [ "node --version", "docker --version", "nvm version", "git --version", "npm --version", ]; const results = await Promise.all(fileVersion.map(x => getVersion(x))); console.log(results); })();
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda