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

128
Views
Cómo obtener datos desde dentro de una función de respuesta en Nods js

Soy un nuevo usuario de Nodejs y Javascript

tengo esta clase:

 class Users { constructor() { this.all; this.selectAll(); } async selectAll() { await connection.connect(() => connection.query(`SELECT * FROM users`, (err, result) => { this.setData(result); }), ); } setData(res) { this.all = res; } }

Quiero obtener el resultado de los datos de la función de respuesta selectAll() ; por ejemplo:

 var db = new Users(); console.log(db.all);

Esperaba que db.all me diera el resultado de selectAll()

¿Hay alguna idea mejor?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Desea esperar esto. this.selectAll ya que es una promesa. Por lo tanto, debe asegurarse de que devuelva una promesa. Puede hacer que el constructor sea asíncrono para esperar el selectAll pero esto no se recomienda y probablemente no funcionará.

Personalmente, solo llamaría a db.selectAll después de crear la instancia de usuarios.

Tal vez algo como esto:

Archivo: Users.js

 export class Users { all = null async selectAll() { return connection.connect(() => connection.query(`SELECT * FROM users`, (err, result) => { this.setData(result); }) ); } setData(res) { this.all = res; } }

Archivo: index.js (o en cualquier otro lugar)

 import { Users } from './Users.js' // Somewhere else in your code in an async function: const anotherPlace = async () => { const db = new Users(); await db.selectAll(); console.log(db.all) }
about 4 years ago · Santiago Trujillo 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!