如何取消对象内部的超时

我有以下代码:


const timers = []

const timer1 = setTimeout(() => {

console.log('Starting timer2')

const timer2 = setTimeout(() => {

  console.log('Its works')

}, 10000)

timers.push({key:2, id:timer2})

}, 10000);

timers.push({key:1, id:timer1})


function remove(key) {

  for (i = 0; i > timers.length; i++) {

     if (timers[i].key === key) {

     timers = timers.slice(i, 1)

     clearTimeout(timers[i].id)

  }

 }

}

当我调用 remove(key) 函数时,代码没有按预期删除计时器


哈士奇WWW
浏览 92回答 1
1回答

狐的传说

const timers = []const timer1 = setTimeout(() => {console.log('Starting timer2')const timer2 = setTimeout(() => {  console.log('Its works')}, 10000)timers.push({key:2, id:timer2})}, 10000);timers.push({key:1, id:timer1})function remove(key) {   const timer = timers.find(f => f.key === key);   if (timer) {     clearTimeout(timer.id);   }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript