Tengo un método (doSomething) que se llamará en estado montado y también tengo un CTA para desmontar el componente. Antes de que finalice la llamada en espera si el usuario desmonta el componente con CTA posterior, el controlador aún regresa al componente desmontado. Cómo abortar la respuesta que regresa al componente.
Componente Vue:
doSomething(){ let data = await someApiCall(); console.log(data) }Tienda.js(vuex)
someApiCall(){ axios.get("apicall").then(res => res); }En lugar de abandonar, puede evitar que se pueda hacer clic en 'desmontar CTA' en primer lugar, hasta que el método doSomething() haya completado su búsqueda.
export default { data() { return { isFetching: false, } }, methods: { async doSomething() { this.isFetching = true let data = await someApiCall() }, myUnmount() { // Do your unmount }, }, async mounted(){ await this.doSomething() this.isFetching = false } }Y luego vincule esto a la CTA;
<button @click="myUnmount()" :disabled="isFetching">Unmount</button>