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

103
Views
cómo obtener datos de resultados de la búsqueda asíncrona dentro de otra función

Estoy tratando de usar una llamada de recuperación asíncrona para obtener datos del servidor, pero el resultado parece una función asíncrona vacía. ¿Qué estoy haciendo mal?

este es mi codigo

 function initAutoComplete (selector, params = []) { let config = { selector: selector, data: { src: async () => { try { let myurl = `/component/get_states?country_id=64`; // http://localhost const response = await fetch(myurl) const source = await response.json(); console.log('source', source); // ==> this doesn't even appear in the console log return source; } catch (err) { return err; } }, keys: ["state_name"], cache: true, }, }; console.log('config', config.data); return config; } const asd = initAutoComplete('#state_name'); console.log('asd', asd.data);

este es el resultado en las herramientas de desarrollo resultado de las herramientas de desarrollo

aunque cuando usé cartero para probar la url, muestra los datos como se esperaba

 [ { "id": "17", "state_name": "Bali", "country_name": "Indonesia" }, { "id": "16", "state_name": "Banten", "country_name": "Indonesia" }, { "id": "7", "state_name": "Bengkulu", "country_name": "Indonesia" }, ]
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Su código muestra llamar a initAutoComplete() , pero todo lo que hace es definir un objeto de config que contiene una función data.src() , pero nada de lo que muestra llama a esa función.

Entonces, según este código, esa función nunca se ejecuta y nunca debería ejecutarse. La función ha sido definida, pero no llamada.

Usarías esto:

 const asd = initAutoComplete('#state_name'); asd.data.src().then(result => { console.log(result); }).catch(err => { console.log(err); });

para llamar realmente a esa función async .


Además, return err es probablemente la forma incorrecta de manejar errores en su función src() . QUIERES la promesa de que la función async vuelve a rechazar cuando recibes un error. Como lo está haciendo ahora, es bastante molesto para la persona que llama notar la diferencia entre un resultado y una condición de error, ya que solo está devolviendo un valor en ambos sentidos. La persona que llama probablemente tendría que verificar el valor resuelto para ver si fue una instancia de Error para discernir si el resultado fue un error o no.

Si elimina el try/catch en su función src() , entonces el rechazo ocurrirá automáticamente, lo que probablemente sea lo que desea.

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!