js中如何从外部中断for循环,起因是这段代码上层会反复进入这个for循环,每次进入的时候需要清除之前的执行效果,所以需要在循环外部来取消?大佬们知道如何做吗?
let progress = 0;
const listLength = 99999;
for (let i = 0; i < listLength; i++) {
progress = (i+1) / listLength * 100;
console.log('进度',progress);
}
之前尝试过,通过变量来中断,但是并没有达到实际效果。
let isBreak = false;
let progress = 0;
const listLength = 99999;
for (let i = 0; i < listLength; i++) {
if (isBreak) break;
progress = (i+1) / listLength * 100;
console.log('进度',progress);
}
//尝试改变isBreak的值,延时队列会在for循环完成后才执行,顺序执行也是如此
//以上是内部中断,无法实现,考虑有没有外部中断的方式
javascript单线程,你这个for循环也是同步的,
所以,当你已经开始for循环时,修改
isBreak
的值为true
,需要等for循环执行完成,才能将
isBreak
的值修改为true
.如果需要从外部中断,需要改成
异步for循环
,代码如下