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

116
Vistas
¿Por qué mi llamada asíncrona no se activa dentro de este componente de Vue 3 (usando la API de composición)?

Estoy tratando de hacer una llamada asíncrona para obtener datos de mi base de datos de Fauna. Pero no puedo hacer que se active la llamada asíncrona.

Dentro de la función setup() tengo console.log("Setup is working"); y eso funciona como se esperaba. Se muestra en la carga de la página.

Luego, dentro de la función asíncrona de callApi , tengo console.log("callApi is working"); . Esa función asíncrona se llama en un evento de clic de botón. Pero al hacer clic en el botón no pasa nada. La función no se activa y no se imprime nada en la consola.

¿Qué estoy haciendo mal?

 <template> <div> <div class="mb-5"> <button class="btn btn-primary mt-5" @click="callApi"> Call API </button> </div> <div class="result-block-container"> <div :class="['result-block', executed ? 'show' : '']"> <h6 class="muted">Result</h6> {{ JSON.stringify(apiMessage, null, 2) }} </div> </div> </div> </template>
 import { defineComponent, inject } from "vue"; import { query as q, client } from "faunadb"; export default defineComponent({ name: "Api", setup() { console.log("Setup is working"); //<---- THIS PRINTS TO CONSOLE ON PAGE LOAD const callApi = async () => { console.log("callApi is working"); //<---- THIS DOES NOT PRINT TO CONSOLE ON BUTTON CLICK const apiMessage = null; const executed = false; const auth = inject("Auth"); const accessToken = await Auth.getTokenSilently(); try { const client = new Client({ secret: accessToken }); const { Paginate, Documents, Collection, Lambda, Get, Var } = q; const data = await client.query( q.Map( Paginate(Documents(Collection("stores"))), Lambda(["storeRef"], Get(Var("storeRef"))) ) ); console.log(data); apiMessage = data; executed = true; } catch (e) { console.log(e); apiMessage = `Error: the server responded with '${e.response.status}: ${e.response.statusText}'`; } }; }, });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Uso con plantillas

Si la configuración devuelve un objeto, se puede acceder a las propiedades del objeto en la plantilla del componente

Solo necesita devolver las propiedades que desea que estén disponibles para su plantilla

 return { callApi }
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