Javascript js,完成时一个接一个显示多个计时器

Javascript js,完成时一个接一个显示多个计时器,javascript,jquery,html,callback,Javascript,Jquery,Html,Callback,大家好,我正在尝试创建多个计时器。当第一个计时器结束时,第二个计时器将启动,第二个计时器结束时,第三个计时器将启动并结束,依此类推……我如何使用回调在javascript中实现它。我想在当前时间上制作计时器,这样我就可以在任何窗口上打开它,它将显示相同的结果。我们非常感谢您的建议 //第一个函数开始时间 var countDownDate=新日期(“2018年1月6日11:42:00”).getTime()//日期时限 //函数2结束时间 var countDownDate1=新日期(“201

大家好,我正在尝试创建多个计时器。当第一个计时器结束时,第二个计时器将启动,第二个计时器结束时,第三个计时器将启动并结束,依此类推……我如何使用回调在javascript中实现它。我想在当前时间上制作计时器,这样我就可以在任何窗口上打开它,它将显示相同的结果。我们非常感谢您的建议

//第一个函数开始时间
var countDownDate=新日期(“2018年1月6日11:42:00”).getTime()//日期时限
//函数2结束时间
var countDownDate1=新日期(“2018年1月6日11:42:25”).getTime()//最终日期时间
//函数z是从函数y调用的
var z=函数(){
警报('zzz');
}
//函数y是从函数x调用的
var y=函数(){
//获取今天的日期和时间
var now=new Date().getTime();//从现在开始日期
//找出现在和倒计时日期之间的距离
var距离=倒计时日期1-现在;
//天、小时、分钟和秒的时间计算
变量天数=数学楼层(距离/(1000*60*60*24));
可变小时数=数学楼层((距离%(1000*60*60*24))/(1000*60*60));
var分钟=数学楼层((距离%(1000*60*60))/(1000*60));
var秒=数学楼层((距离%(1000*60))/1000);
//使用id=“demo”在元素中显示结果
document.getElementById(“demo12”).innerHTML=days+d+hours+h+
分钟+米+秒+秒;
如果(距离<0){
//净间隔(y);
document.getElementById(“demo12”).innerHTML=“过期”;
var sz=new z();//这里调用的是函数z
}
}
//每1秒更新一次倒计时
var x=setInterval(函数(){
//获取今天的日期和时间
var now=new Date().getTime();//从现在开始日期
//找出现在和倒计时日期之间的距离
var距离=倒计时日期-现在;
//天、小时、分钟和秒的时间计算
变量天数=数学楼层(距离/(1000*60*60*24));
可变小时数=数学楼层((距离%(1000*60*60*24))/(1000*60*60));
var分钟=数学楼层((距离%(1000*60*60))/(1000*60));
var秒=数学楼层((距离%(1000*60))/1000);
//使用id=“demo”在元素中显示结果
document.getElementById(“demo”).innerHTML=days+d+hours+h+
分钟+米+秒+秒;
//如果倒计时结束,写一些文字
如果(距离<0){
净间隔(x);
document.getElementById(“demo”).innerHTML=“过期”;
var s=new y();//这里调用的是函数y
}
}, 1000);


您可能可以改进代码,减少函数中的重复实现,并且不在函数中使用全局变量(将函数需要的每个值传递给函数)

const repeat=time=>fn=>{
常数t=setInterval(
()=>fn(t)
时间
);
};
const getDistance=date1=>date2=>{
const diff=date1-date2;
返回[
数学楼层(差值/(1000*60*60*24)),
数学楼层((差异%(1000*60*60*24))/(1000*60*60)),
数学楼层((差值%(1000*60*60))/(1000*60)),
数学楼层((差值%(1000*60))/1000),
差异
];
}
const setHtml=el=>html=>{
el.innerHTML=html;
};
常量工作=距离fn=>setHtmlFn=>t=>{
[days,hour,minutes,seconds,diff]=距离fn(new Date().getTime());

如果您的问题/预期结果不是很清楚,并且您的代码片段似乎正常工作。请尝试调试您的代码以了解您的问题并更新您的问题。