首页 > 解决方案 > 两个函数 JavaScript 之间的 SetInterval

问题描述

我正在使用 JavaScript 对象生成 HTML 表,我创建了两个具有不同标题的函数:

function generateTable(data) {
let newobj = data.filter(function(el) {
        return el.Sens == 'Depart';
    })
    .map(function(obj) {
        return {
            Heure: moment(obj.prevu).format("h:mm"),
            Vol: obj.Numvol,
            Compagnie: 'uploads/' + obj.FileName,
            Destination: obj.AeroD + '  via  ' + obj.AeroA,
            Comptoir: obj.Comptoir.replace(/[\[\]']+/g, ''),
            Porte: obj.porte,
            Infos: obj.etat,
            Enregistrement: obj.active_enregistrement,
        }
    });}

第二个功能:

function generateArTable(data) {
let newobj = data.filter(function(el) {
        return el.Sens == 'Depart';
    })
    .map(function(obj) {

        return {
            'التوقيت': moment(obj.prevu).format("h:mm"),
            'الرحلة': obj.Numvol,
            'الناقل الجوي': 'uploads/' + obj.FileName,
            'الوجهة': obj.AeroD_ar + ' عبر ' + obj.AeroA_ar,
            'الشباك': obj.Comptoir.replace(/[\[\]']+/g, ''),
            'الباب': obj.porte,
            'معلومات': obj.etat

        }
    });

他们都使用同一个表格生成一个 HTML 表格

let table = document.querySelector("#fr_table");

我想创建一个有两个参数 N 和 X 的函数:

我试过这些功能:

 setTimer0 = setInterval(function() {
    generateArTable(data);
    console.log("first function executed");

}, 3500, (0));

setTimer1 = setInterval(function() {
    generateTable(data);
    console.log("second function executed");

}, 3100, (1));

但对于两个函数之间的间隔,它没有按预期工作。

标签: javascriptjavascript-objects

解决方案


N 是执行两个函数的次数 X 是执行两个函数的间隔:

function f1(){console.log(1);}
function f2(){console.log(2);}

function asYouWish(N, X) {
  while(N--){
    f1();
    setTimeout(f2, X);
  }
}
asYouWish(3, 500);

N 是执行两个函数的次数 X 是每个下一个函数的执行间隔:

function f1(){console.log(1);}
function f2(){console.log(2);}

function asIThinkYouReallyWish(N, X) {
  for(let i = 0; i < N*2; i++) {
    setTimeout(i%2? f2 : f1, i * X);
  }
}
asIThinkYouReallyWish(3, 500);


推荐阅读