Привет, я получаю сообщение о том, что добавление += возвращает нулевое значение, и я не уверен, почему это так. Вот пример этого, обведенный зеленым:

enter image description here

Вот код, с которым я работаю:

    for (let i = 0; i < res.rowCount; i++) {
        let username = res.rows[i].user_id
        let level = res.rows[i].lvl
        let xp = res.rows[i].xp
        embed.description += `# ${i+1}. **${username}** **Level: ${level}** | **XP: ${xp}**\n`;}
        message.reply({ embeds: [embed]});
            
    

}

0
troxie 16 Сен 2021 в 17:02

2 ответа

Лучший ответ

Похоже, что embed.description имеет начальное значение null, и конкатенация с ним сначала "привяжет" к этому значению. Наблюдать:

var foo = null;
foo += "test";
console.log(foo);

Вы можете условно установить embed.description перед его обновлением, поэтому, если он null, сделайте его пустой строкой:

embed.description = embed.description ?? '';

Например:

var foo = null;
foo = foo ?? '';
foo += "test";
console.log(foo);
3
David 16 Сен 2021 в 14:10

Он смотрит на первую итерацию цикла, embed.description равно null, вы объединили null со строкой, которая дает "null<string>".

var a = null;
a += "string";
console.log(a);

Попробуйте установить пустую / пустую строку на embed.description перед циклом for, например

embed.description = "";
2
Tushar 16 Сен 2021 в 14:14