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

257
Vistas
Función Async.parallelLimit que ejecuta la función de devolución de llamada antes de las tareas

Estoy intentando configurar algunas ejecuciones de prueba de Newman en paralelo para diferentes entornos, y luego crear un ticket de Jira a través de una solicitud de API una vez que todos estén completos con los resultados. Sin embargo, cuando uso la función ansync.parallelLimit para esa tarea, encuentro que el ticket de Jira se crea sin ninguna información de las ejecuciones de prueba.

Una versión simplificada del proceso es esta:

 var async = require('async'); const path = require('path'); const newman = require('newman'); config = require(path.join(__dirname, 'config.json')); const jira_data = []; var create_ticket = function(err, results){ console.log("Run Complete"); }; var test_run = async() =>{ newman.run({ collection: path.join(__dirname, 'Test.postman_collection.json'), reporters: ['htmlextra'], reporter: { htmlextra : { export : path.join(__dirname, '/reports/Test.html')} },}) } var commands = [test_run,test_run,test_run,test_run]; async.parallelLimit(commands,4, (err, results) => { console.log("Run Complete"); console.log(results); });

Eso dará como resultado el siguiente resultado, que indica que create_ticket se ejecutó antes que nada:

Ejecutar completo
Usando htmlextra versión 1.22.3
Usando htmlextra versión 1.22.3
Usando htmlextra versión 1.22.3
Usando htmlextra versión 1.22.3
Creó el informe htmlextra.
Creó el informe htmlextra.
Creó el informe htmlextra.
Creó el informe htmlextra.

Alternativamente, puedo hacer que test_run sea una función en lugar de asíncrona, como esta:

 var async = require('async'); const path = require('path'); const newman = require('newman'); const jira_data = []; var create_ticket = function(err, results){ console.log("Test Run Complete"); }; var test_run = function() { newman.run({ collection: path.join(__dirname, 'Test.postman_collection.json'), reporters: ['htmlextra'], reporter: { htmlextra : { export : path.join(__dirname, '/reports/Test.html')} },}).on('request', function(err, results) { console.log("Hello"); }) } var commands = [test_run, test_run, test_run, test_run]; async.parallelLimit(commands, 4, create_ticket);

Pero ahora, create ticket no se ejecuta en absoluto:

Usando htmlextra versión 1.22.3
Usando htmlextra versión 1.22.3
Usando htmlextra versión 1.22.3
Usando htmlextra versión 1.22.3
Hola
Hola
Hola
Hola
Creó el informe htmlextra.
Creó el informe htmlextra.
Creó el informe htmlextra.
Creó el informe htmlextra.

Después de pasar más tiempo del que quisiera admitir jugando con diferentes combinaciones de tipos de variables, paso de argumentos y otras correcciones, estoy completamente perplejo. Cualquier ayuda en absoluto sería muy apreciada.

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

0

Debe pasar y llamar a una devolución de llamada a test_run para completar la tarea asincrónica.

 var test_run = function(callback) { newman.run({ collection: path.join(__dirname, 'Test.postman_collection.json'), reporters: ['htmlextra'], reporter: { htmlextra : { export : path.join(__dirname, '/reports/Test.html')} },}).on('request', function(err, results) { console.log("Hello"); callback(null); }) }

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