如何在JavaScript中从外部中断for循环的执行?
在javascript单线程的环境中,同步for循环一旦开始执行,就无法通过内部变量从外部中断。不过,我们可以通过异步的方式来实现从外部中断for循环。
解决方案:异步for循环
使用promise和async/await语法,我们可以创建异步for循环:
const sleep = (time) => new promise(resolve => setTimeout(resolve, time)) let globalBreak = false async function startFor() { for (let i = 0; i <= 10; i++) { await sleep(1000) if (globalBreak) { break } console.log('i:' + i) } } startFor() setTimeout(function() { globalBreak = true }, 3000)
在这个示例中: