JavaScript SetInterval()队列

ton*_*lfx 2 javascript jquery setinterval

是否可以SetInterval()在特定时间调用函数,但只执行一次函数.

function get_feed(social) {
  $.ajax({})
}

setInterval(function(){
  get_feed('facebook');
},5000);

setInterval(function(){
  get_feed('twitter');
},10000);
Run Code Online (Sandbox Code Playgroud)

我希望在指定时间内只调用一次结果:

on 5000ms: get_feed('facebook');
on 10000ms: get_feed('twitter');
Run Code Online (Sandbox Code Playgroud)

但目前它在10000ms上调用两个函数;

T.J*_*der 5

如果我正确地读你,你想每五秒获得一次,并在facebook和twitter之间交替.如果是这样,请使用单个函数:

var feed = "facebook";
setInterval(function() {
    get_feed(feed);
    feed = feed === "facebook" ? "twitter" : "facebook";
}, 5000);
Run Code Online (Sandbox Code Playgroud)

目前它在10000ms上调用两个函数;

那是因为您的原始代码计划get_feed('facebook')每5000 get_feed('twitter')毫秒运行一次,每10000毫秒运行一次.所以5000毫秒后,它Facebook的一个,然后哪吒5000毫秒(共10000ms)之后,它确实他们两个,然后5000毫秒后的Facebook一遍,然后5000毫秒(共20000ms),他们都...