【问题标题】:Cannot access 'person' before initialization Error在初始化错误之前无法访问“人”
【发布时间】:2020-06-21 02:00:14
【问题描述】:

我收到“初始化前无法访问‘人’”错误。除了这个文件,我在其他任何地方都没有 const 人。我是 js 新手,所以我不确定自己做错了什么。

编辑:我修复了该错误,但现在我收到了不同的错误消息。 “UnhandledPromiseRejectionWarning: ReferenceError: getMember is not defined”。

const Discord = require('discord.js');

module.exports.run = async (bot, message, args) => {
const love = Math.random() * 100;
const loveIndex = Math.floor(love / 10);
const loveLevel = "????".repeat(loveIndex) + "????".repeat(10 - loveIndex);

const embed = new Discord.MessageEmbed()
    .setColor("#ffb6c1")
    .addField(`☁ **${person.displayName}** loves **${message.member.displayName}** this much:`,
    `???? ${Math.floor(love)}%\n\n${loveLevel}`);

    let person = getMember(message, args[0]);

 if (!person || message.author.id === person.id) {
    person = message.guild.members
        .filter(m => m.id !== message.author.id)
        .random();

message.channel.send(embed);

}}

module.exports.config = {
name: "love",
description: "Calculates the love affinity you have for another person.",
usage: "[mention | id | username]",
accessableby: "Members",
aliases: ["affinity"]
}

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    在这一行:

        .addField(`☁ **${person.displayName}** loves **${message.member.displayName}** this much:`,
    

    person 未定义。

    尝试将初始化 person 的块移到 const embed = ... 语句的上方。

    【讨论】:

    • 我这样做了,但我现在收到了不同的错误消息。 "UnhandledPromiseRejectionWarning: ReferenceError: getMember is not defined"
    • @Mari getMember 不是您的代码中定义的方法。你期望它在哪里?你想要message.member吗?
    【解决方案2】:

    该错误通常是由于在类本身的代码初始化之前尝试对类进行引用而引起的。尝试在类定义后声明人。

    【讨论】:

    • 我这样做了,但现在我收到了不同的错误消息。 “UnhandledPromiseRejectionWarning: ReferenceError: getMember is not defined”。
    猜你喜欢
    • 2020-12-29
    • 2021-09-10
    • 2020-10-23
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    相关资源
    最近更新 更多