1
AcoStory 2020-03-18 22:04:44 +08:00
把代码贴出来,本大神给你看看
|
3
erguotou521 2020-03-18 22:22:17 +08:00 via Android
等定时器里的逻辑跑完再清啊
|
4
rabbbit 2020-03-18 22:24:21 +08:00
let stop;
function loop(mi) { ...if (stop) { ......return; ...} ...// do ... ...setTimeout(() => { ......loop(); ...}, mi); } loop(mi); // 停止循环 stop = true; |
5
qiutian00 OP @erguotou521 ,很多个定时器哦
|
6
qiutian00 OP @rabbbit , 会不会在执行 do 部分内容时( do 部分内容很复杂,执行时间较长),点击某个操作,想显示其他内容:可能 do 执行的残留还是显示在界面
|
7
rabbbit 2020-03-18 22:49:19 +08:00 1
@qiutian00
这个得自己控制内部流程,在所有有必要的地方判断是否要停止. 要是觉得写一堆 if(stop) 太难看,也可以用生成器. function* process() { ...console.log("流程 1"); ...yield; ...console.log("流程 2"); ...yield; ...console.log("流程 3"); ...yield; } let stop; function run() { ...const iterator = process(); ...for (let i of iterator) { ...if (stop) return; ...} } run(); |
8
rabbbit 2020-03-18 22:50:01 +08:00
也可以用生成器. -> 也可以用生成器控制流程
|