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

271
Views
¿Cómo hacer que async await funcione en airtable api con node js para obtener todos los registros en airtable antes de enviar la resolución?

Estoy tratando de obtener mi registro de airtable usando async await. Lo que quiero es que una vez que airtable haya obtenido todos los registros, devuelva un valor 1 que se asignará a un contador variable. Una vez que el valor del contador es 1, también se puede usar para acceder a otros datos. El problema es que, dado que airtable api tiene un límite de registro de 1. Incluso antes de que alcance todos los elementos, establece el valor de contador en 1. Sé que esto es extraño porque la función de página debe llamarse en airtable api antes de que finalice la función a menos que tenga atravesado por todos los registros. Aquí está mi código:

 var counter = 0; async function FirstCall(){ counter = await backlinksubmissionChecker.getData(); console.log("Counter value is ",counter); if(counter==1){ counter = await codequalityXP.getData(); console.log("Counter value is ",counter); } }

mi código para el acceso a la API de airtable es así

 async function getData() { return new Promise((resolve, reject) => { console.log("Inside Backlink submission checker"); var i=0; let value = base("Program XP").select({ }).eachPage(function page(records, fetchNextPage) { records.forEach(function(record) { let recordID = record.get("RecordID"); let email = record.get("Email Address"); ConnectStudents(recordID,email); i++; }); fetchNextPage(); }, function done(err) { if (err) { console.error(err); reject("Promise rejected"); }else{ resolve(1); } }); }); }

¿Cómo me aseguro de que mi api de airtable me haya traído todos los registros antes de enviar una promesa de resolución que indique que ha atravesado todos los registros?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Parece que está utilizando el SDK de NodeJS de Airtable . Hay una función incorporada para seleccionar todos los registros que creo que simplifica enormemente su código y disminuye el riesgo de otros errores.

 async function getData() { console.log("Inside Backlink submission checker"); const records = await base('Program XP').select().all(); var i = 0; records.forEach(function(record) { let recordID = record.get("RecordID"); let email = record.get("Email Address"); ConnectStudents(recordID,email); i++; }); return 1; } getData() .then((res)=>console.log("DONE: ", res)) .catch((err)=>{console.log("ERR: ", err)});

El problema es que, dado que airtable api tiene un límite de registro de 1

El método GET para la API de Airtable devuelve una página a la vez con un valor predeterminado de 100 registros por página. Si tiene menos de 100 registros en la tabla a la que está realizando la solicitud GET, devolverá todos los registros en una sola llamada.

Si su función ConnectStudents es asíncrona, es posible que no esté procesando completamente cada registro, pero parece que la API de Airtable está devolviendo todos los registros a su sistema.

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!