我在不同的类中使用setTimeout()
函数创建了不同的计时器。我想知道是否有一种方法可以将所有超时时间汇总在一起?
最佳答案
默认情况下不,不。您可以创建自己的模块,以跟踪计时器并提供列表。 大致:
// ES2015+ version
const activeTimers = [];
exports.setTimeout = (callback, interval, ...timerArgs) => {
const handle = setTimeout((...args) => {
const index = activeTimers.indexOf(handle);
if (index >= 0) {
activeTimers.splice(index, 1);
}
callback(...args);
}, interval, ...timerArgs);
activeTimers.push(handle);
};
exports.getActiveTimers = () => {
return activeTimers.slice();
};
...然后使用其
setTimeout
而不是全局代码。