function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Francesca Ribezzi 2Francesca Ribezzi 2 

window.clearInterval not working


 
Hi guys, my  window.clearInterval  doesn't work properly in my code.. can anyone give me any explanation on this, please? Thank you very much!
I'd like it to stop counting when counter == oggetti. 
//Oggetti.cmp

<aura:attribute name="counter" type="Integer" default="0"/>
<aura:attribute name="setIntervalId" type="Integer"/>    
<aura:attribute name="oggettiLength" type="Integer"/>
    

 Collection : {!v.counter}
 
// OggettiController.js

({
    
     doInit : function(component, event, helper) {
         
		helper.getOggettiLength(component, event);
         
      
     },
 
//OggettiHelper.js

({
    
    getOggettiLength : function(component, event){
      
        var collezione = component.get("v.collezione");
        var action = component.get("c.getOggetti");
        action.setParams({ 
                          collezione : collezione});
        
        action.setCallback(this, function(response) {
            var state = response.getState();
            if (state === "SUCCESS") {
                
             var risultato = response.getReturnValue();
             console.log(JSON.stringify(response.getReturnValue()));
                console.log("RESPONSE " + risultato.length);
                component.set("v.oggettiLength", response.getReturnValue());   
                
         		this.onInterval(component, event);
                var storeResponse = response.getReturnValue();
     
                if (storeResponse.length == 0) {
                 
                } else {
                 
                }......


},

onInterval : function(component, event){

        var oggettiLength = component.get("v.oggettiLength");

        var i = 0;
        var interval = window.setInterval(
            $A.getCallback(function() {
                
                var value = i++;
       
                component.set("v.counter", value);
                var oggetti= component.get("v.oggettiLength");
                var counter= component.get("v.counter");
                if(counter == oggetti){
   
                    window.clearInterval(component.get("v.setIntervalId"));
                     
                }
                
            }), 1000
        );   
        
        
        component.set("v.setIntervalId", interval) ; 
       
        
    },

 
NagendraNagendra (Salesforce Developers) 
Hi Francesca,

Sorry for this issue you are encountering.

May I suggest you please check with below link from the stack exchange community with a similar discussion which might help you further. Please let us know if this helps.

Kindly mark this as solved if my reply was helpful.

Thanks,
Nagendra
Francesca Ribezzi 2Francesca Ribezzi 2
Hi Nagendra,
Many thanks for your swift reply. I have alredy checked that post but what I'd like to achieve is to clear the interval as soon as it gets equal to "oggetti size" and not due to unrender or navigation :/