我正在尝试将参数传递给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)
}