Saya membuat sistem keseimbangan, dan saya membuat perintah memberi. Setiap kali saya memberi seseorang uang (misalnya $ 10), saldo mereka menunjukkan sebagai "$ 10 [Janji Objek]". Bagaimana saya bisa menghapus "[Janji Objek]"?

Balance: $100 [object Promise]

Kode perintah penuh:

        if (command === 'give') {

            if (!args[0]) return message.channel.send('how much are you gonna send?')

            if (isNaN(args[0])) return message.channel.send('format: xd give [amount] [@user]')

            const money = args[0];

            const emb = new Discord.MessageEmbed()
            .setColor('GRAY')
            .setTitle('you gave them the $$')
            .setDescription(`you gave ${message.mentions.users.first().username} the $$$$$$ (` + args[0] + ` to be exact)`)
            .setTimestamp()
            .setFooter('sent to pokimane');

            message.channel.send(emb);

            const money2 = moneyAmount - args[0];

            if (isNaN(money2)) {
                Number(money2);
            }

            moneydb.set(message.author.id, money2);



                        const uMA = moneydb.get(message.mentions.users.first().id);

                        const money3 = args[0] + uMA;

                        moneydb.set(message.mentions.users.first().id, money3);
        }
// keyv connection
const moneydb = new Keyv('mysql://[user and pass]@localhost:3306/money');

Bahkan basis data memiliki [objek janji] pada akhirnya

phpmyadmin. Screenshot.

-3
ethry 29 Mei 2021, 01:17

1 menjawab

Jawaban Terbaik

If moneydb adalah basis data keyv seperti yang muncul dalam pertanyaan Anda, maka baris kode ini:

const uMA = moneydb.get(message.mentions.users.first().id);

Menempatkan janji ke Uma. Anda tampaknya kehilangan await seperti ini:

const uMA = await moneydb.get(message.mentions.users.first().id);

Jadi, ketika Anda melakukan ini:

 const money3 = args[0] + uMA;

Dan uMA adalah janji, ia mencoba membuat keduanya menjadi string dan Anda mendapatkan output yang berisi [object Promise].

Fyi, Anda dapat melihat dari dokumentasi keyv di sini keduanya .set() dan {{{{{{{ X1}} mengembalikan janji.

0
jfriend00 29 Mei 2021, 01:01