Ответ 1
Да, вы можете это сделать, напишите wrapper function
для этих двух функций.
Try
setInterval(function(){ function1(); function2(); },8000)
Я знаю о синтаксисе setInterval:
setInterval (функция, миллисекунды)
Я хочу, чтобы две функции вызывались одновременно, а не на каждые 8 секунд. Есть ли способ сделать это с помощью функции setInterval, как это?
setInterval (function1, function2, 8000)
Да, вы можете это сделать, напишите wrapper function
для этих двух функций.
Try
setInterval(function(){ function1(); function2(); },8000)
Если вам нужна более двух функций, выполняемых в последовательности, и вы часто это делаете, нужно передать анонимную функцию, а затем вызывать каждую функцию по отдельности не идеально. Вы можете абстрагировать это:
// 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
Теперь, когда DRY.
да
setInterval(function () {
function1();
function2();
}, 8000);
вызовите его, используя другую функцию
setInterval(function(){
function1();
function2();
},8000)
Да, вы можете создать функцию, которая принимает произвольное количество функций в качестве параметров, а затем обертывает их все в одну функцию и возвращает эту функцию.
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);
Вы можете сделать это:
setInterval(function() {
function1();
function2();
}, 8000);
Да, вы можете сделать это следующим образом...
setInterval(function(){
function1();
function2();
},8000)