2016-11-26 46 views
1

是否可以将间隔标识发送到执行功能作为参数?例如,某些事情是这样的:发送间隔标识作为参数执行功能

var id= setInterval(myFunc.bind(null,id),1000); 

我所要做的是,在myFunc我想要做一些处理和明确的时间间隔,如果我需要。我不能使用全局变量,因为它会多次发生。而且我知道我可以使用全局数组,但由于我的函数逻辑,会花费一点时间。所以我想知道我是否可以将间隔ID作为参数传递给myFunc

编辑: this stackOverfllow link dosen't帮助我,因为没有有用的答案。

+0

@Ergec这是不重复的,因为我并没有问“如何通过论证”我问“怎么遍间隔ID “ – pooyan

+0

是的,我立即删帖后 – Ergec

+0

这可能有助于http://stackoverflow.com/questions/12092439/javascript-setinterval-function-to-clear-itself – Ergec

回答

0

我用这个模式:

function myFunc(host){ 
 
    console.log(host.id); 
 
} 
 

 
var host = {}; 
 
host.id = setInterval(myFunc.bind(null,host),1000);

0

你实际上可以尝试混合setTimeout和setInterval来完成你正在寻找的东西。

你可以阅读更多关于setInterval关于如何将其他参数传递给函数。

var interval = 0; 
 

 
function logId(param) { 
 
    interval++; 
 

 
    if (interval === 3) { 
 
    clearInterval(param); 
 
    } 
 
    console.log(param); 
 

 
} 
 

 
var id = setInterval(function() { 
 
    setTimeout(logId, 0, id) 
 
}, 1000);

0

您可以创建自己的函数来存储您的回调函数和区间ID在同一个对象,并通过该对象到您的间隔功能,将调用提供的功能与间隔ID。

function setMyInterval(f,t) { 

    var handleMyInterval = function(ob) { 
     ob.func(ob.id); 
    }; 
    var idOb = {func: f};    
    idOb.id = setInterval(handleMyInterval,t,idOb);  

    return idOb.id 
} 
0

你可以在你的间隔内使用函数,所以你可以这样做。

创建一个函数,它会在您设置的时间之后执行间隔和自行清除。

intervalTime是循环间隔的时间,timeout是清除间隔循环的时间。

都以毫秒为单位接收。

function test(intervalTime,Timeout,log){ 
    var id = setInterval(function(){ 
     console.log(log) 
    },intervalTime); 

    setTimeout(function(){ 
     clearInterval(id); 
    }, Timeout); 
} 

test(1000,10000,'test1'); 
test(1000,1000,'test2'); 
相关问题