簡體   English   中英

setInterval 不重復 Function 使用 Discord.js

[英]setInterval Not Repeating Function using Discord.js

我正在嘗試制作一個 discord 機器人,它會為您提供每周提醒 我正在使用momentjs來獲取時間。 以及使用discord.js-commando 我發現多次調用 function 的最佳方法是使用setInterval

const moment = require('moment');
const Commando = require('discord.js-commando');
const bot = new Commando.Client();

bot.on('ready', function () {
  var day = moment().format('dddd');
  var time = moment().format('h:mm a');

  function Tuesday() {
    if (day == 'Tuesday' && time == '6:30 pm') {
      const channel = bot.channels.get('933047404645724234');
      console.log('Sending Message');
      channel.send('Reminder: You have a week to complete your To-Do List!');
    } else {
      console.log('Not Sending Message');
    }
  }

  console.log('Bot is now ready!');
  setInterval(Tuesday, 100);
});

我注意到setInterval的問題是它只被調用一次。 我也嘗試過使用異步 function 但也失敗了。

每 100 毫秒執行一次 function 並不是最優的。 我不知道只運行一次的原因是什么(它應該無限運行),但有更好的方法來做你需要的事情。

您將需要名為“node-schedule”的 package。 對於這樣的事情真的很有用。

這是一個例子:

const schedule = require("node-schedule");

schedule.scheduleJob({hour: 18, minute: 30, dayOfWeek: 2}, function(){
    // your code here
});

您可以在此處的節點計划文檔中閱讀更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM