我正在尝试遍历javascript中的六个功能。当用户将鼠标悬停在较小的图像上时,每个图像都会更改图像的图像源。我知道如何遍历数组,但似乎无法遍历函数。还有一种方法可以让它等待几秒钟,然后循环到下一个函数。感谢您提供的任何帮助。
答案 0 :(得分:3)
我不确定我是否完全理解您的问题。也许这段代码会有所帮助?
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);
}
每个函数在调用下一个函数之前都会执行一些代码(延迟1000ms之后)。 myFunction3()
将调用myFunction1()
并重复该链。
答案 1 :(得分:0)
首先它可能是一个函数数组:
// 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);
答案 2 :(得分:-1)
使用诺言,您的问题将直接得到解决。