Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

212
Views
¿Cómo obtengo el valor de salida de un método asíncrono como entrada y visualización usando express?

Soy un poco nuevo en Node y Express.

Estoy tratando de crear una API que consume una API externa y devuelve el resultado como entrada a lo que muestro

¿Cómo obtengo el valor de salida de un método asíncrono como entrada y visualización usando el método de envío rápido?

ver mi código expreso a continuación

 const express = require("express"); var AsyncMethod = require("./src/AsyncMethod");//works perfectly const app = express(); const port = 8000; app.get("/url", (req, res) => { var output = ""; var biller = new AsyncMethod(); try { output = await (biller.run()); .then(//need help here console.log("inside Main") res.send(output)) } catch (ex) { console.log("An error occurred"); res.send("An error occurred"); console.log(ex); } });
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

debe esperar a que se complete la ejecución del método asíncrono utilizando el método .then() y devolver la respuesta de la devolución de llamada.

Uso Async/Await

 const express = require("express"); var AsyncMethod = require("./src/AsyncMethod");//works perfectly const app = express(); const port = 8000; app.get("/url", async (req, res) => { var output = ""; var biller = new AsyncMethod(); try { output = await biller.run(); res.send(output) } catch (ex) { console.log("An error occurred"); res.send("An error occurred"); console.log(ex); } });

Usando promise

 const express = require("express"); var AsyncMethod = require("./src/AsyncMethod");//works perfectly const app = express(); const port = 8000; app.get("/url", (req, res) => { var biller = new AsyncMethod(); biller.run().then(function(output){ res.send(output) }).catch(function(ex){ console.log("An error occurred"); res.send("An error occurred"); console.log(ex); }) });
about 4 years ago · Juan Pablo Isaza Report

0

Miré el proyecto github al que publicaste un enlace en el comentario

.run necesita devolver una Promise si quieres await

Entonces, aquí se explica cómo hacerlo... las 5 líneas adicionales están marcadas //+++

 var BaseSample = require('./BaseSample'); var GetBillers = function(){ //inherit BaseSample.call(this); } GetBillers.prototype.run = function(){ return new Promise((resolve, reject) => { //+++ this.billpayment.get_billers(function(err, res){ if(err) { //error executing request console.log("Error calling get billers "+JSON.stringify(err)); reject(err); //+++ } else{ //check if it was successful var statusCode = res.statusCode; if(statusCode === 200) {//request was successful var billerArray = JSON.parse(res.body).billers; var firstBiller = billerArray[0]; var billerId = firstBiller.billerid; var billername = firstBiller.billername; console.log(billerId+" "+billername); resolve(billerId+" "+billername); //+++ } else{//it was not successful for a reason console.log("FAILED: "+statusCode); reject(statusCode); //+++ } } }); }); //+++ } module.exports = GetBillers;

Ah, y el código que publicaste debería parecerse un poco a

 const express = require("express"); var AsyncMethod = require("./src/AsyncMethod");//works perfectly const app = express(); const port = 8000; app.get("/url", (req, res) => { var biller = new AsyncMethod(); try { const output = await biller.run(); console.log("inside Main") res.send(output)) } catch (ex) { console.log("An error occurred"); res.send("An error occurred"); console.log(ex); } });
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!