DeprecationWarning:Collection#find:改为传递函数

时间:2018-08-26 12:33:55

标签: javascript node.js discord discord.js

我是node.js的新手,我目前正在使用discord.js制作Discord机器人。一旦使用了任何bot命令,控制台就会显示DeprecationWarning。 例如:

(node:15656) DeprecationWarning: Collection#find: pass a function instead

(node:15656)有时是另一个数字,几乎总是在变化。
这就是我的代码的样子(只有一个命令,我有多个命令,尽管我都收到了这个错误):

const botconfig = require("./botconfig.json")
const Discord = require("discord.js");
const bot = new Discord.Client();

bot.on("ready", () => { 
    console.log(`Launched ${bot.user.username}...`);
    bot.user.setActivity("Games", { type: "PLAYING" });
});

bot.on("message", async message => {
    if (message.author.bot) return;

    let prefix = botconfig.prefix;
    let messageArray = message.content.split(" ");
    let cmd = messageArray[0];
    let args = messageArray.slice(1);
    let botico = bot.user.displayAvatarURL;

    if (cmd == `${prefix}help`) {
        let helpEmbed = new Discord.RichEmbed()
            .addField(".kick", "kick a user", true)
            .addField(".ban", "ban a user", true)
            .addField(".unban", "unbans a user", true)
            .addField(".mute", "mutes a user over a period of time", true)
            .setColor("#005b5f")
            .setThumbnail(botico);

        message.channel.send(helpEmbed);
        console.log(`command used: help`);
    };
});

bot.login(botconfig.token)

1 个答案:

答案 0 :(得分:12)

它在您的其他命令之一中。您极有可能在其他命令之一中使用了const A = new Map(); A.set('x', 123); A.set('y', 345); const B = new Map(); B.set('y', 567); B.set('x', 789); const C = new Map(); C.set('x', 121); C.set('y', 232); C.set('z', 434); const aKeys = [...A.keys()]; const bKeys = [...B.keys()]; const cKeys = [...C.keys()]; console.log(aKeys.sort().toString() == bKeys.sort().toString()); console.log(aKeys.sort().toString() == cKeys.sort().toString()); console.log(bKeys.sort().toString() == cKeys.sort().toString());之类的东西。

此内容已更新为#Collection.find('name', 'keyname')

就像在错误中说的那样。 #Collection.find()需要一个函数。因此,使用一个错误就会消失。