[英]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.