Discord.js按顺序发送消息
Discord.js send messages in order
我有一个 discord 机器人,它会根据命令向一个频道发送多条消息。有些消息是图片,它们总是最后发送。
msg.channel.send({files: ["image.png"]});
for (var i in rules) {
msg.channel.send({embed: rules[i]});
}
msg.channel.send({files: ["image2.png"]});
msg.channel.send({embed: embed1});
msg.channel.send({files: ["image3.png"]});
msg.channel.send({embed: embed2});
我希望消息按照代码的顺序发送。
TextChannel.send()
returns 一个承诺,所以你可以只使用 async/await
// make sure your function is async
await msg.channel.send({files: ["image.png"]});
await msg.channel.send({files: ["image2.png"]});
await msg.channel.send({embed: embed1});
await msg.channel.send({files: ["image3.png"]});
await msg.channel.send({embed: embed2});
因为你使用的是异步函数,消息不会按照编码顺序发送,而是按照处理时间发送。
由于图片比短信大得多,因此在异步环境中最后发送。
您需要使用回调将这些函数变为同步,但我建议搜索一个本质上是同步的 discord 命令。
我有一个 discord 机器人,它会根据命令向一个频道发送多条消息。有些消息是图片,它们总是最后发送。
msg.channel.send({files: ["image.png"]});
for (var i in rules) {
msg.channel.send({embed: rules[i]});
}
msg.channel.send({files: ["image2.png"]});
msg.channel.send({embed: embed1});
msg.channel.send({files: ["image3.png"]});
msg.channel.send({embed: embed2});
我希望消息按照代码的顺序发送。
TextChannel.send()
returns 一个承诺,所以你可以只使用 async/await
// make sure your function is async
await msg.channel.send({files: ["image.png"]});
await msg.channel.send({files: ["image2.png"]});
await msg.channel.send({embed: embed1});
await msg.channel.send({files: ["image3.png"]});
await msg.channel.send({embed: embed2});
因为你使用的是异步函数,消息不会按照编码顺序发送,而是按照处理时间发送。
由于图片比短信大得多,因此在异步环境中最后发送。
您需要使用回调将这些函数变为同步,但我建议搜索一个本质上是同步的 discord 命令。