如何使用javaScript中的sleep函数停止循环?

irtuqstp  于 2023-03-06  发布在  Java
关注(0)|答案(1)|浏览(91)

我用这段代码

function sleep(s) {
   return new Promise(resolve => setTimeout(resolve, s));
}

function run() {
  for (let i = 0; i <= 200; i++) {
      sleep(i * 1000).then(_ => {
         console.log(`Waiting ${i} seconds...`);
      })
  };
}

run();

在这个link的帮助下,我能够创建一个睡眠功能,它工作得很完美
现在我有一个问题,我不能停止和禁用!
我想让函数停在中间,然后给予它新的值,最优方法是什么?

cvxl0en2

cvxl0en21#

使用async/await可实现:

function sleep(s) {
   return new Promise(resolve => setTimeout(() => resolve(s), s));
}

async function run() {
  for (let i = 0; i <= 200; i++) {
      console.log( await sleep(i * 1000));
  };
}

run();

相关问题