
1 AcoStory 2020 年 3 月 18 日 把代码贴出来,本大神给你看看 |
3 erguotou521 2020 年 3 月 18 日 via Android 等定时器里的逻辑跑完再清啊 |
4 rabbbit 2020 年 3 月 18 日 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 年 3 月 18 日 @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 年 3 月 18 日 也可以用生成器. -> 也可以用生成器控制流程 |