Как отправить два сообщения (второе сообщение с задержкой, punchline) - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь создать Jokebot в js, который отправляет изюминку после задержки.

Вот код, с которым я работаю. Это только посылает мне изюминку. Я вырезал некоторый код, поскольку он повторяет проблему.

var delayInMilliseconds = 1500;

function poolJoke() {
  const rand = Math.floor(Math.random() * 7) + 1;
  if (rand === 1) {
    bot.postMessageToChannel(
      'bots',
      'What does bread loaves say when they greet each other?',
      setTimeout(function() {
        bot.postMessageToChannel('bots',
                                 'Gluten tag.')
      }, delayInMilliseconds),
      params
    );
  } 
}

1 Ответ

0 голосов
/ 11 февраля 2020

Привет, вам нужно добавить локальную переменную и очистить время, попробуйте этот код

function poolJoke(val) {
    var timer;
    const rand = val;

    if (rand == 1) {
        window.clearTimeout(timer);
      console.log('What does bread loaves say when they greet each other?');
        timer = setTimeout(function () {
            console.log('bots', 'Gluten tag.' + timer)
        }, 5000);
    } 
}

Попробуйте это решение, которое я тестировал, и отлично работали:

  bot.on("start", function() {

      bot.postMessageToChannel(channel, "Hello world!");
      console.log("Hello world!");

      setTimeout(() => {
            bot.postMessageToChannel(channel,'after 5000 ms.')
        }, 5000)

  });
...