【发布时间】:2017-03-21 02:36:14
【问题描述】:
当它出现时,我必须找到一个按钮。为了做到这一点,我使用 setInterval。当它找到这个按钮时,它会为我的变量提供所需的值。我在 setTimeout 内检查它,但在 setTimeout(在这些方法之外)之后,我的全局变量变成了与 setTimeout 之前一样。如何解决?
let foundValue;
function findById(id) {
let interval = setInterval(() => {
if (document.getElementById(id)){
let foundValue = document.getElementById(id);
clearInterval(interval);
}
}, 1000);
return foundValue;
}
【问题讨论】:
-
您有两条
let foundValue行。是故意的吗? -
删除第二个让......
-
本质上,你有两个不同范围的变量叫做同一个东西
-
我删除了这些让。情况没有改变
-
你是在间隔后检查
foundValue,还是检查findById返回的值,因为你return的方式不太可能是你想要的。
标签: javascript ecmascript-6 settimeout setinterval es6-promise