我知道setInterval语法:
的setInterval(函数,毫秒)
我希望同时调用两个函数,而不是每8秒调用一个函数。是否有任何方法可以通过这样的setInterval函数来完成它?
setInterval(function1,function2,8000)
答案 0 :(得分:14)
是的,你可以这样做,为这两个函数写一个wrapper function
。
尝试
setInterval(function(){ function1(); function2(); },8000)
答案 1 :(得分:7)
如果你需要在一个序列中执行两个以上的函数而你经常这样做,那么必须通过一个匿名函数然后单独调用每个函数并不理想。你可以抽象一下:
// For functions with side effects
function sequence() {
return [].reduce.call(arguments, function(f,g) {
return function() {
f.apply(this, arguments);
g.apply(this, arguments);
};
});
}
function hi(){ console.log('hi') }
function say(){ console.log('how are you?') }
function bye(){ console.log('bye') }
setTimeout(sequence(hi, say, bye), 1000);
//^ ...
// hi
// how are you?
// bye
现在那是干的。
答案 2 :(得分:3)
是
setInterval(function () {
function1();
function2();
}, 8000);
答案 3 :(得分:3)
使用其他功能
来调用它setInterval(function(){
function1();
function2();
},8000)
答案 4 :(得分:2)
是的,您可以创建一个函数,它将任意数量的函数作为参数,然后将它们全部包装在一个函数中并返回该函数。
function a() { alert("aaa"); }
function b() { alert("bbb"); }
function combine() {
var args = arguments;
// Return a single function, which when invoked,
// will invoke all the functions that were passed to combine.
return function () {
for (var i = 0; i < args.length; i++) {
args[i]();
}
};
}
setTimeout(combine(a, b), 2000);
答案 5 :(得分:1)
你可以这样做:
setInterval(function() {
function1();
function2();
}, 8000);
答案 6 :(得分:1)
是的,您可以通过以下方式实现...
setInterval(function(){
function1();
function2();
},8000)