js的setTimeout执行后会自动销毁么?

js的setTimeout执行后会自动销毁么?

定时器会自动销毁,但是仅仅是定时器

“仅仅是定时器”啥意思?

还有cc.Component的schedule次数到了会自动销毁么?

setTimeout计时结束了就会销毁,但有个问题,假如在SomeView里使用setTimeout,假设计时器还没到期,SomeView先被销毁了,然后setTimeout到期后的回调使用了SomeView相关的节点(此时SomeView里所有节点都已被销毁),就会报错,除非SomeView销毁时,进行setTimeout的清理。用了组件的schedule就不一样,当组件被销毁时,schedule会被自动销毁,不用手动去清理计时器

用了 setTimeOut 就要进行节点的判断了,是否已经被销毁了 isValid(node)。
如果还存在再进行操作,否则 return

是的,这样很麻烦,假设在这回调里用了十几个不一样的节点,这几十个都要加判断

你可以可以用cocos的schedule啊

let timer = setTimeout(()=>{
clearTimeout(timer);
//do something
},5000);
这里不写clearTimeout(timer),这个timer系统会自动clear掉吧?

我一直在用啊 :rofl:

是的,setTimeout是一次性的计时器。

OK,谢啦