const myTimer = (fn, a, b) => { let alltime = a; let timer; //让每次的定时器都使用同一个容器。 function run() { timer = setTimeout(() => { fn(); run(); }, alltime); alltime += b; } run(); return () => { clearTimeout(timer); }; }; const stopTimer = myTimer(() => { console.log(Date.now()); }, 10, 1000); setTimeout(() => { stopTimer(); }, 5000)