每隔几分钟编辑一次相同的消息

时间:2019-04-05 01:55:21

标签: javascript

我正在尝试编写一个discord机器人,该机器人可以编辑每几分钟发送一次的相同消息,我已经编写了一些代码,但是只编辑了一次。我是这种事物的新手,任何想法可能出什么问题或我需要做什么?

应该使用我的FiveM Server进行编辑,但我想先完成编辑部分

我已经尝试在邮件中使用setTimeout(),但是它只编辑一次邮件。

const config = require("./config.js");
const request = require('request');

const Discord = require('discord.js');
const client = new Discord.Client();

var ip = "Private"
var port = "30120"
var timeoutvar = "60000"

const players = request(`http://${ip}:${port}/players.json`, function (players, error, response, body) {
  console.log('body:', body);
});

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

// Set the bot's presence (activity and status)
client.on("ready", () => {
  client.user.setPresence({
      game: { 
          name: 'MODPS',
          type: 'WATCHING'
      },
      status: 'dnd'
  })
})

client.on('message', msg => {
  client.channels.get("channelid").send(`${players}`)
  .then((msg) => {
    setTimeout(function() {
      msg.edit(`${players}`)
    }, 2000)}
  )}
)

client.login(token);

预期结果:至少每分钟左右要编辑一条消息。

实际结果:同一条消息仅编辑一次。

3 个答案:

答案 0 :(得分:3)

您可以使用setInterval()方法进行操作。

  

setInterval()方法重复调用函数或执行代码段,每次调用之间有固定的时间延迟。

client.on('message', msg => {
    client.channels.get("channelid").send(`${players}`)
    .then((msg) => {
        setInterval(function() {
            msg.edit(`${players}`)
        }, 1000)} /* 1000 ms = 1 second */
    )}
)

这是setInterval()方法的基本示例:

setInterval(function(){
  console.log('Hello World');
}, 2000);

答案 1 :(得分:1)

60,000毫秒= 60秒。 setInterval每隔x毫秒执行一次给定功能:

client.on('message', msg => {
  client.channels.get("channelid").send(`${players}`)
  .then((msg) => {
    setInterval(function() {
    msg.edit(`${players}`)
  }, 60000)}
  )}
)

答案 2 :(得分:0)

这有效:

[[8,14],[10,12]]