我有一系列想要删除的消息。例如,如果我传递3-5条消息,我有5条消息* a b c d e*
我希望命令^delmsg 3-5
删除d和c。
我设法获得ID(雪花)的d,并试图将其传递给before
,但它不断获取我的命令和e而不是d和c。我不知道我还能做些什么。也许我没有意识到我的承诺是错的。
代码:
const deleter = (message, range) => {
const range1 = range[0]; //indexes are already an array so we get the first index
const amnt = parseInt(range[1]) - parseInt(range[0]); //makes the str index ints
var msgs, nID;
message.channel.messages.fetch({
limit: range1,
}).then(a => {
msgs = Array.from(a);
nID = msgs[range1-1][0];
}).then(message.channel.messages.fetch({
limit: amnt,
before: nID,
}).then(b => {
//message.channel.bulkDelete(b);
}));
}
.then
期望一个未调用的函数。你也应该在那里使用箭头函数,它应该像预期的那样工作
message.channel.messages.fetch({
limit: range1,
}).then(a => {
msgs = Array.from(a);
nID = msgs[range1-1][0];
}).then(() => message.channel.messages.fetch({ //notice it's an arrow function
limit: amnt,
before: nID,
})).then(b => {
message.channel.bulkDelete(b);
})
您还应该注意,末尾的额外括号应该在您获取消息的.then
之后。