Добавить элемент задержки в объект Javascript

Я работал, по крайней мере, с одним программистом, который думал, что return был специальным вызовом функции, и был удивлен, когда увидел, что мой код выполнил без парнеров.

-1
задан Rotemya 19 March 2019 в 18:01
поделиться

2 ответа

  1. Создан метод appendTyping, который выполняется немедленно, передавая массив и индекс 0
  2. Функция выполняет свою логику
  3. В конце, если следующий индекс все еще находится в пределах границы массива, мы выполняем setTimeout, чтобы дождаться начала следующей итерации.

var elements = [1, 2, 3, 4, 5];

(function appendTyping (elements, index) {
  var element = elements[index];
  
  if (element == 3) $('div').append('typing');
  else console.log(element);
  
  if (++index < elements.length) {
    setTimeout(function(){ appendTyping(elements, index); }, 2000);
  }
})(elements, 0);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div></div>

0
ответ дан Taplar 19 March 2019 в 18:01
поделиться

Вдохновленный Таплером, небольшая модификация - вот мой ответ.

var elements = [1, 2, 3, 4, 5,6,7,8];

(function appendTyping(elements, index) {
                var element = elements[index];

                if (++index <= elements.length) {
                    if (element == 3 || element == 6) {
                        $('div').append('typing....');
                        console.log(element);
                        setTimeout(function () { appendTyping(elements, index); }, 2000);
                    }
                    else {
                        $('div').append(index);
                        console.log(element);
                        appendTyping(elements, index);
                    }
                }


            })(elements, 0);
0
ответ дан soju 19 March 2019 в 18:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: