实现方法
// 存储每个接口的信息
function getuserinfo1() {
return 1;
}
function getuserinfo2() {
return 2;
}
function getuserinfo3() {
return 3;
}
function getuserinfo4() {
return 4;
}
const interfaces = [
{ name: getuserinfo1(), interval: 1000, lastRequestTime: 0 },
{ name: getuserinfo2(), interval: 2000, lastRequestTime: 0 },
{ name: getuserinfo3(), interval: 3000, lastRequestTime: 0 },
{ name: getuserinfo4(), interval: 4000, lastRequestTime: 0 },
];
// 定义一个单一的计时器函数
function requestWithSingleTimer() {
setInterval(function () {
const currentTime = Date.now();
// 遍历每个接口
interfaces.forEach((interface) => {
// 检查是否达到了请求间隔时间
if (currentTime - interface.lastRequestTime >= interface.interval) {
// 发送请求到该接口
console.log(`Sending request to ${interface.name}`);
// 更新上次请求时间
interface.lastRequestTime = currentTime;
}
});
}, 100); // 检查间隔可以设置为较小的值,以确保在每个接口请求间隔内及时检查
}
// 启动计时器
requestWithSingleTimer();
在这个例子中,我们首先定义了一个存储每个接口信息的数组。然后我们创建了一个名为 requestWithSingleTimer 的函数,该函数使用一个单一的 setInterval 来检查每个接口是否需要发送请求。在每次计时器函数执行时,它会遍历每个接口,检查是否已经到达了该接口的请求间隔时间,如果是,则发送请求并更新上次请求时间。