Discord.js 消息收集器不值得

Discord.js 消息收集器不值得,discord.js,Discord.js,我正在发出一个支持命令:你键入一个命令,机器人向你发送一条消息,然后你回复该消息。我使用了等待消息功能,但它不起作用 case `support` : { message.channel.send("What's your problem?"); let filter = m => m.author.id === message.author.id; let msg = await message.channel.awaitMessa

我正在发出一个支持命令:你键入一个命令,机器人向你发送一条消息,然后你回复该消息。我使用了等待消息功能,但它不起作用

case `support` : {
      message.channel.send("What's your problem?");
      let filter = m => m.author.id === message.author.id;
      let msg = await message.channel.awaitMessages(filter, {maxMatches: 1});
      message.channel.send("Your problem is: " + msg.first().content);

      break;
    }
要使用
.then()
,您需要返回一个。这是如何使用承诺的一个基本示例:

const myFunction = () => {
    return new Promise((resolve, reject) => {
        if(taskIsSuccesFullyDone)
        {
            resolve(true); // Pass anything
        }else{

            reject('Something went wrong!');
        }
    });
}


myFunction().then(() => {
    // Task is succesful completed.
    // Do anything
})
.catch(error => console.log(error.message || error));
在您的情况下,您的代码如下所示:

function support_message() {
    return new Promise((resolve, reject) => {
        message.author.send(`Hello, <@${message.author.id}>, reply to this message explaining the problem you have.`)
        .then(message => resolve(message))
        .catch((error) => {
            message.reply("I can't send you messages, be sure that you allow direct messages from unknown users to use this command.");
            reject(error);
        })
    });
}

case `staff-support` : {
    support_message().then(message => {
        // We got the message object passed from the resolved Promise
        // Do anything here
    })
    .catch((err) => {
        // There was a problem!
        // Do anything here.
    });
    break;
}
功能支持\u消息(){
返回新承诺((解决、拒绝)=>{
message.author.send(`Hello,回复此消息,解释您的问题。`)
。然后(消息=>解析(消息))
.catch((错误)=>{
reply(“我无法向您发送消息,请确保您允许来自未知用户的直接消息使用此命令。”);
拒绝(错误);
})
});
}
案例“工作人员支助”:{
支持_message()。然后(message=>{
//我们从已解决的承诺中传递了消息对象
//在这里做什么
})
.catch((错误)=>{
//有个问题!
//在这里做任何事。
});
打破
}

谢谢您的回答,我现在在邮件收集器上还有其他问题。所以我编辑了post@manujonex现在还不清楚消息收集器有什么问题。你能解释一下或者编辑一下你的帖子让它更容易理解吗?