code: function (option) {
  
      this.start_time = null;
      this.workflow = option.workflow;
      this.wf_len = this.workflow.length;
      this.timer = null;
      this.interval = option.interval || 15;
  
      this.onStart = option.onStart || function () { };
      this.onProgress = option.onProgress || function () { };
      this.onEnd = option.onEnd || function () { };
  
      if (typeof this.workflow[0] === "function") {
          this.stopSeries = false;
          this.isSeries = true;
          this.workIndex = 0;
      } else {
          var i=0,
              j,
              startLen;
          for (; i < this.wf_len; i++) {
              var start =  this.workflow[i].start;
              if (typeof start !== "number") {
  
  
                  j=0;
                  startLen=start.length;
                  for (; j < startLen; j++) {
                      this.workflow.splice(i, 0, { work: this.workflow[i].work, start: start[j] });
                  }
                  i += startLen;
                  this.workflow.splice(i--, 1);
                  this.wf_len--;
                  this.wf_len += startLen;
  
              }
          }
      }
  }
docs: /* AlloyFlow 0.1.0
  By AlloyTeam
  https://github.com/AlloyTeam/AlloyFlow