我正在制作一个应用程序,它要求我给每个用户一个 6 秒的间隔计时器,该计时器将每 6 秒完成一次操作。我已经让定时器可以基于函数是唯一的,但主要问题是如果我用不同的参数调用函数,我无法动态取消它们。我只能通过创建一个方法来取消计时器,该方法在某个倒计时将 clearInterval(action);
我基本上设置了函数,以便我可以传递两种类型的数字。消极或积极。这是一个例子:
需要明确的是,我不能将定时器分配给的“动作”变量分配给函数之外,因为它只允许服务器运行一个定时器而不是每个用户所需的一个定时器。我真的无法弄清楚这一点!
graphql resolver
Actions: async (_, number, {user}) => {
try {
await requireAuth(user);
if (number > 0) {
let doActions = setInterval(doStuff, 6000);
} else {
clearInterval(doActions);
}
function doStuff() {
if (userRelatedNumber > 0) {
"...actions in here"
} else {
clearInterval(doActions); //// does not work with recalling function with -1
}
}
} catch (e) {
throw e;
}
},