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

108
Vistas
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 Respuestas
Responde la pregunta

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 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