再请教For循环延时的问题

image.png

image.png

image.png

如何实现真正的暂停,即当i=1时,延迟3秒后,执行i+1

顺便把CPT上传,供大家研究

测试延时sleep.cpt

nhb2318 发布于 2021-7-30 00:13 (编辑于 2021-7-30 00:15)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
luojian0323Lv7资深互助
发布于2021-7-30 08:39(编辑于 2021-7-30 15:59)

for循环延时.gif

for (var i = 1; i < 15; i++) { (function(i) { //_g().setCellValue("A"+i,null, i); setTimeout(function(){ _g().setCellValue(0, i, i); // sleep(1000); },1000*i); })(i) } //第一种,使用while循环 function sleep1(delay) { var start = (new Date()).getTime(); while ((new Date()).getTime() - start < delay) { continue; } } //或者使用for循环 function sleep2(delay) { for (var t = Date.now(); Date.now() - t <= delay;); }

---------------------------------更新回答----------------------------------------------------------------

for循环延时1.gif

测试循环延时.cpt

  • nhb2318 nhb2318(提问者) 你这个代码我见过,我以前就是这么设置的 这个代码中,只是把核心代码_g().setCellValue(0, i, i);延迟执行了,第一行延迟1秒,第二行延迟2秒,第三行延迟3秒……,但他们是同时开始的,所以起来像是sleep1秒后再执行,实际上核心代码还没有执行呢,i已经从1跑到15了,i没有sleep,怎么才能让i暂停,达到一定条件的时候,i继续
    2021-07-30 09:36 
  • luojian0323 luojian0323 回复 nhb2318(提问者) 你看我这个是第一行延时一秒第二行延时2秒吗?
    2021-07-30 10:47 
  • nhb2318 nhb2318(提问者) 回复 luojian0323 那能不能做成这个效果呢?在旁边加两个按钮,一个叫暂停,一个叫继续 for循环就用你这个,我想在出现5的时候,点一个暂停键,然后程序暂停,i暂停,setCellValue也暂停,然后过一会儿,我点一下继续,点继续后,程序接着原来的运行,i开始从刚才暂停时的5增加,setCellValue继续住下写。可以实现吗?
    2021-07-30 11:54 
  • 3关注人数
  • 417浏览人数
  • 最后回答于:2021-7-30 15:59
    请选择关闭问题的原因
    确定 取消
    返回顶部