Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website

why can't i use setTimeout in scripts?


  • var i = 0;                  
    
    function myLoop() { 
      setTimeout(function() {  
        p422.set(p422.value + 1);
        i++;                 
        if (i <= 20) {           
          myLoop();            
        } else {
          i = 0;
        }               
      }, 400)
    }
    if (p420.value) {
        myLoop();
    }
    setInterval(function() {
            if (p420.value) {
                myLoop();
            } else {
                return false
            }
    }, 8500)
    

    I need to execute my myLoop() function indefinitely with a time between each execution. So I need to use setTimeout but it doesn't work. I have an error ReferenceError "setTimeout" is not defined.
    I would like to know why, and what can I use instead?

    Thank you in advance


  • @alexandre-buisson setTimeout isn't supported. If you're going to do that you can put delays in-between using
    RuntimeManager.sleep( time in milliseconds)

    Also note scripts can be ran forever at whatever rate you like. For more control use the cron timer option for "run every" rates.
    Scripts and meta points work in two ways. They can "fire" after a datapoint attached to the context point list is updated which causes a triggered update. Or, they can run routinely at set intervals. If needs be, you can always explain what you're wanting to achieve and we can work through it to help you obtain the desired outcome.

    EDIT: please refrain from double posting, if you put the post in the wrong place the mods can move it for you. Double posting won't earn you any brownie points.

    Fox