• VUE: Как можно менять значение в data с задержкой в одну секунду перебирая массив из data?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Вы не понимаете, как работает setTimeout. Эта функция не останавливает выполнение кода, а создаёт в отдельном потоке таймер, который через заданное время положит вызов callback-функции в очередь выполнения JS. В результате вы практически одновременно создаёте все таймеры, и они одновременно срабатывают.
    Для циклических вещей используется либо рекурсивный вызов setTimeout, либо, что гораздо лучше, setInterval.
    onStart() {
      let idx = 0;
      const timer = setInterval(
        () => {
          this.step = this.myList[idx];
          idx += 1;
          if (idx >= this.myList.length) {
            clearInterval(timer);
          }
        },
        1000,
      );
    }
    Ответ написан
    3 комментария