0条评论
还没有人评论过~
我想实现这样一个功能:数组里都是函数,每个函数里都有定时器,用来模拟动画过程,按照顺序依次执行这些函数。
let num = 0;
function a(){
setTimeout(function(){
console.log(1);
num++;
}, 2000);
};
function b(){
setTimeout(function(){
console.log(2);
num++;
}, 3000);
};
function c(){
setTimeout(function(){
console.log(3);
num++;
}, 1000);
};
let arr = [a, b, c];
arr.forEach((fn, index) => {
if(num === index){
//num 等于下标时,才能执行相应的函数
fn();
}
});
这样写的话只有 a 可以执行,请高手赐教
把 num 拿到定时器外面:
$(function () {
let num = 0;
function a() {
num++;//拿到这里
setTimeout(function () {
console.log(1);
}, 2000);
};
function b() {
num++;
setTimeout(function () {
console.log(2);
}, 3000);
};
function c() {
num++;
setTimeout(function () {
console.log(3);
}, 1000);
};
let arr = [a, b, c];
arr.forEach((fn, index) => {
if (num === index) {
//num 等于下标时,才能执行相应的函数
fn();
}
});
});
num 放在全局 里面进行重新累加赋值