让我们说一个网站不断从用户那里接收一些数据。如果要alert()
用户在5秒钟内没有收到用户的数据,我希望它。
这就是我要尝试的方法:
countDown = 5000
if(//some data received from user){
countDown = 5000
}
setTimeout(
function() {
alert('no data in 5 seconds')
}, countDown);
}
好吧,这是行不通的,因为它不能每次将 countDown 设置为5秒钟,因此它无法接收用户的数据,那么我该怎么做呢?
并且由于来自用户的数据是连续不断的,我想每次运行新的setTimeout()
并销毁旧的call.isEmpty()
都会降低性能。(?)
答案 0 :(得分:1)
这更多是一种递归函数,用于检查是否有任何数据。如果不是,它将使功能在五秒钟内运行。如果数据仍然不存在,请重复该过程。
let countDown = 5000
function someFunction() {
//this is called when you recieve data
timeoutFunc();
}
function timeoutFunc() {
setTimeout(
function() {
if (//still don't have new data) {
alert('no data in 5 seconds');
timeoutFunc();
}
}, countDown);
}
}