Как больше раз вызывать мою внутреннюю функцию setInterval () внутри цикла?(конкретная проблема) - PullRequest
0 голосов
/ 22 декабря 2018

Я борюсь с функцией, которую я вызываю в setInterval.В частности, я хотел бы напомнить мою функцию рендеринга, которая рисует разные линии, начиная с разных точек (учитывая набор значений в массиве), но, поскольку я повторяю эти значения в цикле, кажется, что я могу запустить первый setInterval, когда i =0, но затем я не могу остановить его, а затем перезапустить, когда я = 1 ecc ... Как я могу решить эту проблему?

 var degree= [2,0,3,1];
function choose_velocity(degree) {
  let v0; // please give a better name
  for(let i = 0;i < degree.length; i++) {
    var difference = Math.abs(degree[i+1] - degree[i]);
    if (difference === 1) { // always use triple equal (it will compare the type and the value as well
      v0 = 25;
    }
    if (difference === 2) {
      v0 = 36;
    }
    if (difference === 3) {
      v0 = 44;
    }
    if (difference === 4) {
      v0 = 51;
    }
    if (difference === 5) {
      v0 = 57;
    }
    if (difference === 6) {
      v0 = 62;
    }

    if (degree[i+1] - degree[i] < 0) {
      invert_sign = true; // try to use camelCase convention in Javascript
    }

    StartInterval(0.2); // don't name your function with Pascal convention unless you're creating a Constructor function
    console.log("entro convelocità", v0);
  }
}

function StartInterval(frequency) {
  var clear = setInterval(function() {
  render( t += 0.03, clear, invert_sign);
  }, frequency);
}

Код Codepen здесь

Я искал решение, данное в прошлом здесь, но я не мог решить мою проблему, поэтому, пожалуйста, будьте терпеливы .. В любом случае, спасибо заранее!:)

...