如何将动态参数传递给 setInterval 函数?

How to pass dynamic parameter to setInterval function?

我正在尝试将参数传递给 setInterval 函数,如下所示

load(value) {
        let checkedValue = value;;
        let checkExist = setInterval(function (checkedValue ) {
            if ((document.getElementsByClassName("switch")).length > 0) {
                ($(".switch") as any).kendoSwitch({
                    checked: checkedValue 
                }).data("kendoSwitch");               
             clearInterval(checkExist); 
            }            
        }, 100)        
    }

CheckedValue 在这里无法访问,正确的方法是什么?

setInterval 将所有无关参数传递给回调函数:

   let checkExist = setInterval(function (checkedValue) {
        if ((document.getElementsByClassName("switch")).length > 0) {
            ($(".switch") as any).kendoSwitch({
                checked: checkedValue 
            }).data("kendoSwitch");               
         clearInterval(checkExist); 
        }            
    }, 100, checkedValue); // Note checkedValue is passed as the final parameter

但是,您可以依靠闭包来完成这项工作

  load(value) {
    let checkExist = setInterval(function () {
        if ((document.getElementsByClassName("switch")).length > 0) {
            ($(".switch") as any).kendoSwitch({
                checked: value
            }).data("kendoSwitch");               
         clearInterval(checkExist); 
        }            
    }, 100)        
  }