Проход по функциям в Javascript - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь перебрать шесть функций в JavaScript. Каждый из них изменяет источник изображения для изображения, когда пользователь наводит курсор на изображение меньшего размера. Я знаю, как перебирать массивы, но я не могу перебирать функции. Также есть способ заставить его ждать несколько секунд, прежде чем он перейдет к следующей функции. Спасибо за любую помощь, которую вы можете предложить.

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Прежде всего это может быть массив функций:

// the list of functions
const actionList = [];

// pushing functions to the list
actionList.push(func1);
actionList.push(func2);
...

// running functions in a loop
for(let i = 0; i < actionList.length; i++) {
  actionList[i]();
}

Если вы хотите запустить их последовательно с некоторой задержкой, вы можете использовать простейший подход с рекурсивным таймером:

const run = function (actionList, index, delay) {
  setTimeout(function () {
    actionList[index](); // execute current index function immediately
    index++; // increment index...
    if(actionList[index]) { // ...while there are items in the list
      run(actionList, index, delay); // next index function will be executed after "delay" ms
    }
  }, delay);
}

run(actionList, 0, 1000);
0 голосов
/ 28 августа 2018

Я не уверен, что полностью понимаю ваш вопрос. Возможно, этот код поможет?

function myFunction1() {
    // Some code you want to execute
    setTimeout(myFunction2, 1000);
}

function myFunction2() {
    // Some more code you want to execute
    setTimeout(myFunction3, 1000);
}

function myFunction3() {
    // Some final code you would like to execute before repeating the chain
    setTimeout(myFunction1, 1000);
}

Каждая функция выполняет некоторый код перед вызовом следующей функции (после задержки 1000 мс). myFunction3() вызовет myFunction1() и повторяет цепочку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...