how to pass the dynamic variable to setInterval method

前端 未结 2 1372
礼貌的吻别
礼貌的吻别 2021-01-27 07:54

i want to refresh/reload the method in every 30 seconds. but im not able to send the variable data to another function i.e setInterval.how to pass variable in the setInterval me

相关标签:
2条回答
  • 2021-01-27 08:07

    you can do it in various way,

    example:

    //set data
    window.deviceId=Id
    

    and use it in settimout

    setInterval(function () {
                $scope.getPIRData(window.deviceId);//unable to pass id here
            }, 30000)
    

    but you can declare any global variable of the settimeout outer scope, then that variable will be available into the settimeout call back function, because then it will be treated as Closures

    0 讨论(0)
  • 2021-01-27 08:18

    Courtesy of @tvanfosson:

    You probably want to have a function that creates the interval timer for you. Pass in the parameter to the function so its value is captured in the function closure and retained for when the timer expires.

    function createInterval(f,dynamicParameter,interval) { setInterval(function() { f(dynamicParameter); }, interval); }
    

    Then call it as createInterval(funca,dynamicValue,500); Obviously you can extend this for more than one parameter. And, please, use more descriptive variable names. :)

    0 讨论(0)
提交回复
热议问题