举例:收到180,开始倒计时180s,接着突然收到0,倒计时立刻变为0s
1.前端定义一个计时器函数,
function timesub(){
times--;
}
2.调用setInterval(timesub,1000);
var timer1 = setInterval(timesub,1000);
3.如果收到的值==0,结束计时器
clearInterval(timer1);
1.前端做简单,写个定时器,再按参数不同完成相应操作即可
2.后端,那就用定时任务,请求的时候开启定时任务,收到0的时候,关闭定时任务,时间直接归0
这个业务场景多线程呗,首先正常非0的数倒计时,到0s返回结果;如果中途有请求就把正在倒计时的线程关掉,返回结果。这个正常倒计时和突然结束建立线程关联即可,即结束线程要知道结束的是哪个线程。
private Object obj = new Object();
public void rude(int i) {
synchronized (obj) {
if (i != 0) {
i--;
} else {
// 结束。。。
}
}
}
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
首先,你的需求就有问题,你的意思应该是接口长连接类型的吧,调用接口后,你的接口等待,当再次传值为0时结束
如果时这样的话,建议你加个调用成功的回掉接口
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y