我想我可能太累了,但我一辈子都无法理解这一点,我认为这是由于缺乏 javascript 知识所致
var itv=function(){
return setInterval(function(){
sys.puts('interval');
}, 1000);
}
var tout=function(itv){
return setTimeout(function(){
sys.puts('timeout');
clearInterval(itv);
}, 5500);
}
有了这两个函数我就可以调用了
a=tout(itv());
并让一个循环计时器运行 5.5 秒然后退出,基本上。
按照我的逻辑,这应该可行,但根本不行
var dotime=function(){
return setTimeout(function(){
clearInterval(function(){
return setInterval(function(){
sys.puts("interval");
}, 1000);
});
}, 5500);
}
任何对此问题的见解都将不胜感激。
最佳答案
它无法工作,因为您的 setInterval
将在超时后调用!你原来的方法是正确的,你仍然可以把它包装成一个函数:
var dotime=function(){
var iv = setInterval(function(){
sys.puts("interval");
}, 1000);
return setTimeout(function(){
clearInterval(iv);
}, 5500);
};
关于一个函数内的 JavaScript setTimeout setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2464522/