是否可以在特定时间使用 SetInterval()
调用函数,但仅执行该函数一次。
function get_feed(social) {
$.ajax({})
}
setInterval(function(){
get_feed('facebook');
},5000);
setInterval(function(){
get_feed('twitter');
},10000);
我希望结果在指定时间仅被调用一次:
on 5000ms: get_feed('facebook');
on 10000ms: get_feed('twitter');
但目前它在 10000ms 上调用两个函数;
最佳答案
如果我没理解错的话,您希望每五秒获取一次提要,并在 Facebook 和 Twitter 之间轮流切换。如果是这样,请使用单个函数:
var feed = "facebook";
setInterval(function() {
get_feed(feed);
feed = feed === "facebook" ? "twitter" : "facebook";
}, 5000);
currently its calling two functions on 10000ms;
这是因为您的原始代码安排 get_feed('facebook')
每 5000 毫秒运行一次,get_feed('twitter')
每 10000 毫秒运行一次。因此,5000 毫秒后,它执行 facebook 操作,然后再经过 5000 毫秒(总共 10000 毫秒),它执行这两个操作,然后 5000 毫秒后再次执行 facebook 操作,然后 5000 毫秒(总共 20000 毫秒),两者都执行...
关于JavaScript SetInterval() 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38012993/