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

147
Vistas
¿Cómo puedo cambiar setTimeout para enviar la solicitud hasta que se reciba un valor?

En mi aplicación, tengo una funcionalidad en la que el usuario puede importar un archivo de hoja de cálculo. El archivo en sí se envía a la aplicación backend y, después de un tiempo, el resultado se puede obtener desde un punto final diferente según la ID. La cuestión es que el backend puede tardar mucho tiempo en preparar una respuesta y este tiempo varía según el tamaño del archivo. Hasta ahora he estado usando la función setTimeout , pero como el tiempo de respuesta del backend es diferente, no puedo hacerlo.

Aquí está mi código:

new_batch.vue

 export default { name: 'BackboneSyncProducts', data() { return { styleCodes: [], fetchedProductSyncResult: [], loadId: null, } }, watch: { loadId(newValue, oldValue) { if (!oldValue && newValue) { setTimeout(() => { fetchSyncedProductsResultRequest(this, newValue).then(response => { this.fetchedProductSyncResult = response.data['result'] }) }, 3000) } } },

Toda la funcionalidad debe ser asíncrona. ¿Cómo acceder a la aplicación backend usando la función fetchSyncedProductsResultRequest hasta que response.data['result'] no sea nulo?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Intente enviar varias solicitudes mediante setInterval hasta que el archivo se procese en el backend y devuelva un valor no nulo. También puede usar websockets, pero eso requerirá actualizar la API de back-end.

 export default { name: 'BackboneSyncProducts', data() { return { styleCodes: [], fetchedProductSyncResult: [], loadId: null, } }, watch: { loadId(newValue, oldValue) { if (!oldValue && newValue) { const intervalId = setInterval(() => { fetchSyncedProductsResultRequest(this, newValue).then(response => { if (response.data['request']) { clearInterval(intervalId); this.fetchedProductSyncResult = response.data['result'] } }) }, 1000) } } },
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