我正在用Javascript编写代码。我尝试使用不同的库来安排事件,包括node-cron,node-schedule和更高版本。调度事件工作正常,但由于某种原因,它执行我的函数几次而不是一次。有时它会两次,有时是4次。有时它会继续前进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)
答案 0 :(得分:0)
我的机器人代码看起来像这样:
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带领我朝着正确的方向前进!