Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

157
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda