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

99
Views
Respuesta de búsqueda de JS como variable

Necesito alguna orientación por favor.

Solo JS puro, no jQuery, por favor.

Estoy asignando una respuesta de búsqueda a una variable en la parte superior del archivo *.js (varias variables de búsqueda + diferentes, tanto GET como POST):

 var srcDL; fetch(url) .then(response => response.json()) .then(data => srcDL = data);

Esto funciona bien, sin embargo, más adelante en el mismo archivo, intento iterar a través del objeto, pero el error me dice que srcDL no está definido.

 Uncaught TypeError: Cannot read properties of undefined (reading 'length')...

Supongo que esto se debe a que la recuperación es asíncrona, por lo que el resto del archivo se ejecuta antes de que la recuperación obtenga una respuesta exitosa y haya actualizado la variable.

 Array.from(document.querySelectorAll('.AU_dList')).forEach(function(e){ var idx = e.getAttribute('data-idx'); var selitem = e.getAttribute('data-selitem'); var s = ''; var data = ''; for( var i = 0; i < srcDL.length; i++ ){ s = srcDL[i]['pk']==selitem ? ' selected' : ''; data = data + '<option value="' + srcDL[i]['pk'] + '" '+ s +'>' + srcDL[i]['name'] + '</option>'; } document.getElementById("dept_"+idx).innerHTML = data; });

Traté de envolver el Array.from.... junto con muchas otras funciones que dependen de la respuesta de búsqueda a la variable, en un retraso con setTimeout() . Esto funciona parcialmente, hasta que otro evento necesite hacer referencia a una función creada dentro de / después de que se haya completado setTimeout() , lo que genera otro error:

<function> is not defined at HTMLSelectElement.onchange

Leyendo sobre async/await, esto realmente no resuelve mis necesidades, porque (si lo entiendo correctamente), cada instancia de mi DOM con clase .AU_dList llamará a la URL de búsqueda. Por lo tanto, llamar a la base de datos varias veces en el mismo archivo obteniendo la misma respuesta. Por lo tanto, quiero hacer inicialmente la llamada a DB, guardar la respuesta en una variable y luego usarla dentro del archivo tantas veces como sea necesario.

¿Cuál es el mejor enfoque para que esto funcione como se esperaba? ¿La recuperación es ultrarrápida o no es asíncrona? ¿Estoy casi allí o perdí completamente el punto?

EDITAR: Vuelva a abrir, esto no es un duplicado.

about 4 years ago · Juan Pablo Isaza
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!