Javascript 我怎样才能让以后和/或cron只激活我的功能一次?

Javascript 我怎样才能让以后和/或cron只激活我的功能一次?,javascript,laterjs,Javascript,Laterjs,我正在用Javascript编写代码。我已经尝试使用不同的库来调度事件,包括节点cron、节点调度以及更高版本。调度事件工作得很好,但出于某种原因,它多次执行我的函数,而不是一次。有时做两次,有时做四次。有时,它会在继续之前重复10多次。我一定是用错了,但我不知道出了什么问题 对于上下文,这段代码存在于discord.js bot中。下面是调度函数中涉及的代码,使用后面的库。目前,这是有效的,只是…它有效的次数太多了。我只希望它执行我的函数一次 var later = require("late

我正在用Javascript编写代码。我已经尝试使用不同的库来调度事件,包括节点cron、节点调度以及更高版本。调度事件工作得很好,但出于某种原因,它多次执行我的函数,而不是一次。有时做两次,有时做四次。有时,它会在继续之前重复10多次。我一定是用错了,但我不知道出了什么问题

对于上下文,这段代码存在于discord.js bot中。下面是调度函数中涉及的代码,使用后面的库。目前,这是有效的,只是…它有效的次数太多了。我只希望它执行我的函数一次

var later = require("later");

var sched = later.parse.text('every 2 mins on the 30th sec');

function logTest() {
    console.log(`Please only do this once.`);
}

var timer = later.setTimeout(logTest, sched)

我的机器人程序代码以前是这样的:

var Discord = require("discord.js");
var bot = new Discord.Client({ autoReconnect: true });
var later = require("later");

bot.on("message", msg => {

.......

var sched = later.parse.text('every 2 mins on the 30th sec');

function logTest() {
    console.log(`Please only do this once.`);
}

var timer = later.setTimeout(logTest, sched)

.....
});
var Discord = require("discord.js");
var bot = new Discord.Client({ autoReconnect: true });
var later = require("later");

var sched = later.parse.text('every 2 mins on the 30th sec');

function logTest() {
    console.log(`Please only do this once.`);
}

var timer = later.setTimeout(logTest, sched)

.....

bot.on("message", msg => {

.......


.....
});
现在看起来是这样的:

var Discord = require("discord.js");
var bot = new Discord.Client({ autoReconnect: true });
var later = require("later");

bot.on("message", msg => {

.......

var sched = later.parse.text('every 2 mins on the 30th sec');

function logTest() {
    console.log(`Please only do this once.`);
}

var timer = later.setTimeout(logTest, sched)

.....
});
var Discord = require("discord.js");
var bot = new Discord.Client({ autoReconnect: true });
var later = require("later");

var sched = later.parse.text('every 2 mins on the 30th sec');

function logTest() {
    console.log(`Please only do this once.`);
}

var timer = later.setTimeout(logTest, sched)

.....

bot.on("message", msg => {

.......


.....
});

这里的第二个代码有效。我的“稍后”代码需要在消息块之外,这会干扰它。谢谢Patrick为我指引了正确的方向

所以你写了“每2分钟做一次
”,并且想知道为什么库会按照你的要求做?我希望它每两分钟做一次,而不是每两分钟做几次。我想我已经解释得很好了,我想没有。好吧,我误解了你的问题。因此,问题似乎不在您发布的代码的范围内。也许你的机器人运行有多个实例?这是我检查的内容之一,不幸的是,情况似乎并非如此。如果有帮助的话,我可以发布更多的代码。不管怎样,非常感谢您的回复。现在我至少知道不要再看这里了,我可以试着在代码的其他地方找到一些奇怪的东西。