Cuando cambio a un menú, obtengo datos de la API. Mientras estos datos todavía están escribiendo pendig en DevTools, hago clic en el botón Filtrar y busco otros datos. Los datos que busco llegan a mi mesa. Pero cuando llegan los datos pendientes, los datos que busco desaparecen.
Línea de comando donde obtengo los datos
protected loadData = (params) => { $.ajax({ method: 'GET', url: this.tableUrl, data: params.data, beforeSend: (request) => { request.setRequestHeader('Authorization', `Bearer ${this.authService.getToken()}`); } }).done((response) => { params.success(response); }); }Las solicitudes que recibí arriba. La solicitud superior tarda unos 40 segundos. La parte inferior tarda 1 segundo. Obtiene datos en 1 segundo. Dado que el otro tarda 40 segundos, se agregan otros datos además de los datos que vienen en 1 segundo después de 39 segundos. Necesito cancelar las solicitudes que dicen "referenceTumList?PageIndex=0&PageSize=10" mientras estoy filtrando.
Puedes cancelar una llamada ajax así
xhrReq: any; protected loadData = (params) => { if(this.xhrReq){ this.xhrReq.abort(); } this.xhrReq = $.ajax({ method: 'GET', url: this.tableUrl, data: params.data, beforeSend: (request) => { request.setRequestHeader('Authorization', `Bearer ${this.authService.getToken()}`); } }).done((response) => { params.success(response); }); }si desea cancelar la llamada en el botón, haga clic en
onButtonClick(){ if(this.xhrReq){ this.xhrReq.abort(); } }