javascript || Angular2 / 6: Chamando setInterval várias vezes, mas o último timerId não está parando, apesar de clearInterval chamado
Requerimento
usuário varre vários números de trabalho. Para cada número de trabalho, preciso ligar para uma API, obter o total de detalhes do trabalho e mostrá-lo em uma tabela abaixo da caixa de texto digitalizad
O usuário não quer esperar até a chamada da API terminar. Ele digitalizará continuamente, independentemente de os detalhes terem chegado ou nã
O que eu fiz
Peguei uma variável jobNumberList que armazena todos os números de trabalho que o usuário digitalizou Estou ligando continuamente para a API, com esses números de trabalhQuando API, dá resposta, então eu estou adicionando à tabela Criei um método chamado m1 () m1 () => esse método comparará o jobNumberList com os dados das linhas da tabelse qualquer item não encontrado nos dados das linhas da tabela quando comparado aos dados jobNumberList, eles ainda estarão carregando trabalhos (significa API, sem resposta a esses trabalhos)Estou usando setInterval () para chamar m1 () (time inteval = 1000)Quando jobNumberList e os dados das linhas da tabela coincidem, estou cancelando o intervaloQuestão Mesmo que eu pare a votação, o intervalo ainda está em execução. Qual será o problema?
*
O problema é intermitente (não contínuo). Quando digitalizo rapidamente os números dos trabalhos, está chegando. A velocidade normal não está chegand
*
O meu código é o seguinte
// START INTERVAL
startPolling() {
var self = this;
this.isPollingNow = true;
this.poller = setInterval(() => {
let jobsWhichAreScannedButNotLoadedInsideTableStill = self.m1();
if (self.isPollingNow && jobsWhichAreScannedButNotLoadedInsideTableStill.length === 0) {
self.stopPolling();
self.isPollingNow = false;
}
}, 1000);
}
//STOP INTERVAL
stopPolling() {
var self = this;
setTimeout(function () {
window.clearInterval(self.poller); // OR //clearInterval(self.poller) //
}, 0);
}
REQUERIMENT
DEBUGGING IMAGES