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

145
Vistas
No se pueden agregar los datos devueltos por la API de Twilio.

Estoy tratando de obtener los datos de facturación de la API de Twilio y guardar el valor devuelto en una variable para poder devolverlo y mostrarlo en mi aplicación web. Sé que está relacionado con async, intenté usar async y await pero no pude hacerlo funcionar.

 const twilio = require("twilio"); client = twilio( "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "AUTHXXXXXXXXXXXXXXXXXXXXXXXXXXX" ); const filterOpts = { startDate: "2021-08-01", endDate: "2021-08-31", }; let result = [] function getBillingData() { client.usage.records.each(filterOpts, async (record) => { let temp = await record; result.push(temp); }); } getBillingData(); console.log(result.length);

Cuando intento ejecutar esto, imprime 0

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

0

const filterOpts = { startDate: "2021-08-02", endDate: "2021-08-02", callback: (data) => {result.push(data);} , done: () => {console.log(result.length);}, }; async function getBillingData() { client.usage.records.each(filterOpts); } async function getData() { await getBillingData(); }; getData();

Revisé la documentación para encontrar que puedo pasar dos parámetros opcionales que harían mi trabajo.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Desarrollador evangelista de Twilio aquí.

Creo que este problema es una condición de carrera con llamadas asíncronas en su JS y su código regresa antes de que finalicen las llamadas asíncronas. Creo que each llamada también es asíncrona. Prueba esto:

 async function getBillingData() { let result = [] await client.usage.records.each(filterOpts, async (record) => { let temp = await record; result.push(temp); }); return result; } getBillingData().then((result) => { console.log(result.length); })

Ahora, la función getBillingData es una función async , por lo que puede usar await en la llamada a client.usage.records.each . También recopila los results dentro de sí mismo y devuelve el valor cuando la función se resuelve.

Finalmente, usamos getBillingData().then() para garantizar que los datos se recopilen y se devuelvan antes de registrarlos.

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