我的react组件中有以下代码:
//some code
var timeout = null; //global variable
//some more code
useEffect(() => {
if(...some condition) {
console.log('test1');
timeout = setTimeout(() => {
console.log('test2');
}, 15 * 1000);
} else {
console.log('test3');
clearTimeout(timeout);
}
}, [some other condition]);
我在控制台中得到的输出:
test1
test3
test2 //after 15 seconds
所以我试图开始超时,它会记录“test2”,如果在此期间超时未被清除。正如我们所看到的,'test3' 已被记录,这意味着超时已被清除,但 15 秒后仍会记录 'test2'。这里有什么问题?