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

125
Visualizações
Cómo retrasar la solicitud de eliminación durante 1 segundo en Vue.js

Tengo productos que se están tomando con llamadas a la API y el usuario los puede poner en el carrito. Por lo tanto, también se pueden eliminar, pero quiero que se elimine del front-end después de 1 segundo porque hay una animación en el botón Eliminar. Así que mi carrito es como el siguiente:

ingrese la descripción de la imagen aquí

Entonces, cuando se hace clic en el botón de la papelera, se elimina, pero de inmediato, quiero que se tome como 1 o 2 segundos. Así que para esto mi código es como:

 <template> <div id="delete-button" @click.prevent="removeProductFromCart(item.id)"> <input type="checkbox" id="checkbox"> <div id="bin-icon"> <div id="lid"></div> <div id="box"> <div id="box-inner"> <div id="bin-lines"></div> </div> </div> </div> </div> </template> <script> import cartHelper from "../helpers/cartHelper"; export default { props: { item: Object, }, data() { return { loading: false, }; }, methods: { removeProductFromCart(id) { cartHelper.removeFromCart(id, (response) => { this.loading = true; this.$store.dispatch('removeProductFromCart', { cart: response.data, }) setTimeout(() => this.loading = false, 1000); }); }, } }; </script>

Entonces, ni siquiera sé si configuré un tiempo de espera por qué se elimina de inmediato, pero no espere 1 segundo.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

¿Podría intentar retrasar la llamada al método real?

 removeProductFromCart(id) { this.loading = true; setTimeout(() => { cartHelper.removeFromCart(id, (response) => { this.$store.dispatch('removeProductFromCart', { cart: response.data, }) this.loading = false }); }, 1000)
about 4 years ago · Juan Pablo Isaza Relatório

0

El problema aquí es que solo está retrasando la bandera de carga, pero no la acción en sí. Mueva su acción de despacho dentro de setTimout también.

 removeProductFromCart(id) { cartHelper.removeFromCart(id, (response) => { this.loading = true; setTimeout(() => { this.$store.dispatch('removeProductFromCart', { cart: response.data, }) this.loading = false }, 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