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 流程控制器的主要内容,如果未能解决你的问题,请参考以下文章

你可能不知道的JavaScript代码片段和技巧(下)

你可能不知道的JavaScript代码片段和技巧(上)

Javascript流程控制

javascript流程控制语句-循环

Java入门到架构师教程之JavaScript流程控制语句

JavaScript学习(八十七)—流程控制语句的总结,超级详细!!!