为了账号安全,请及时绑定邮箱和手机立即绑定

如何取消对象内部的超时

如何取消对象内部的超时

哈士奇WWW 2023-06-15 17:21:38
我有以下代码: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) 函数时,代码没有按预期删除计时器
查看完整描述

1 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

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);

   }

}


查看完整回答
反对 回复 2023-06-15
  • 1 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号