繁体   English   中英

Discord.js 运行后面的代码后在源头运行代码

[英]Discord.js Run the code at the fount after running a later code

我想问一下,在开头的里面运行代码后,是否可以运行开头的代码? 就像这里是我的代码,我将更多地讨论我到底想要做什么。

SendEmbed.awaitReactions(
  (reaction, user) =>
    user.id == message.author.id && ["1️⃣", "2️⃣"].includes(reaction.emoji.name),
  { max: 1, time: 10000 }
)
  .then((collected) => {
    if (collected.first().emoji.name == "1️⃣") {
      const NewEmbed = new Discord.MessageEmbed()
        .setColor("#55FF55")
        .setTitle("OOF")
        .setDescription(`${message.author.tag} has add reaction 1️⃣`);
      SendEmbed.edit(NewEmbed);
      SendEmbed.reactions.removeAll();
      SendEmbed.react("1️⃣");
      SendEmbed.react("2️⃣");
      return;
    } else if (collected.first().emoji.name == "2️⃣") {
      const NewEmbed = new Discord.MessageEmbed()
        .setColor("#55FF55")
        .setTitle("OOF")
        .setDescription(`${message.author.tag} has add reaction 2️⃣`);
      SendEmbed.edit(NewEmbed);
      SendEmbed.reactions.removeAll();
      SendEmbed.react("1️⃣");
      SendEmbed.react("2️⃣");
      return;
    }
  })
  .catch(() => {
    message.channel.send("Time out");
  });

所以这是我的代码,我想问一下是否可以再次运行代码从

SendEmbed.awaitReactions ...

在它完成运行代码后

if (collected.first().emoji.name == '1️⃣') {

或者

} else if (collected.first().emoji.name == '2️⃣') {

要么(这意味着当该人已经对消息做出反应时它会返回到 SendEmbed.awaitReactions 然后它再次上升。

将重复单元包含在单个函数中,并在执行结束时递归调用。

下面是一个例子:

 function recursive() { console.log('Waiting for input'); return new Promise((resolve, reject) => { setTimeout(() => { console.log('Input received and processed'); resolve(5); recursive(); }, 3000); }); } recursive();

关于你的例子:

function listen() {
 SendEmbed.awaitReactions()
  .then((collected) => {
   executeLogic();
   listen();
  })
  .catch(() => {
   handleError();
   listen();
  });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM