JavaScript 流程控制器
Posted 巅峰蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript 流程控制器相关的知识,希望对你有一定的参考价值。
/* * 流程控制器 * 作者:caoke * */ class Step{ //初始化 constructor(stepArr,callback){ this.stepArr=stepArr; this.curIndex=0; this.hasRunTimes=Array(stepArr.length).fill(0); this.callback=callback; } callback(){ this.next() } // 运行当前流程 run(){ const step=this.stepArr[this.curIndex] if(step){ this.hasRunTimes[this.curIndex]++ this.callback.apply(this,[step,this.hasRunTimes[this.curIndex]]) } } // 跳转到某个流程 go(step){ this.curIndex=this.stepArr.indexOf(step) this.run() } // 进入下一个流程 next(){ this.curIndex++ this.run() } } // demo var control=new Step([‘step1‘,‘step2‘,‘step3‘,‘step4‘,‘step5‘],function (step,hasRunTime) { console.log(step,hasRunTime) switch (step){ case ‘step5‘: if(hasRunTime<2){ this.go(‘step3‘) } default: this.next() } }) control.run() // "C:Program FilesJetBrainsWebStorm 2018.1.2in unnerw.exe" "C:Program Files odejs ode.exe" D:17zuoyego est.js // step1 1 // step2 1 // step3 1 // step4 1 // step5 1 // step3 2 // step4 2 // step5 2 // // Process finished with exit code 0
以上是关于JavaScript 流程控制器的主要内容,如果未能解决你的问题,请参考以下文章