代码之家  ›  专栏  ›  技术社区  ›  Persik

不一致js如何检查用户是否不接受直接消息

  •  5
  • Persik  · 技术社区  · 6 年前

    我想知道Discord机器人是否能够检查机器人试图DM的特定用户是否接受直接消息。现在这是我的代码:

    exports.run = (client, message) => {
        try {
            message.author.send(`:ok_hand:`);
        } catch (err) {
            message.reply('Cannot send Direct Messages to your user!');
        }
    }
    

    但我希望代码能够在尝试向用户发送消息之前告诉用户是否接受直接消息。这可行吗?

    1 回复  |  直到 6 年前
        1
  •  13
  •   André stev-e    6 年前

    这是不可能的。要确定是否可以发送DM,唯一的方法是尝试发送消息。
    您可以使用承诺中的捕获来捕获错误并做一些事情,而不是使用try-catch。

    message.author.send('👌')
       .catch(() => message.reply("Can't send DM to your user!"));