我正在嘗試從 SQL 請求向 SelectMenu 添加選項。我的代碼如下:
case "edit":{
const editrow = new MessageActionRow();
let query = `SELECT * FROM tickettypes WHERE guild_id = '${interaction.guild.id}'`
const editmenu = new MessageSelectMenu()
.setCustomId('editselect')
.setPlaceholder('?? Select tickettype to edit')
.addOptions([
{
label: 'None',
description: 'Empty',
value: 'none',
},])
await sql.query(query, function(err, result) {
if(err) throw err;
console.log(result)
result.forEach(item => {
editmenu.addOptions([
{
label: '' item.name,
description: '' item.name,
emoji: '' item.emoji,
value: '' item.id,
},
]);
});
});
editmenu.addOptions([
{
label: '2 Test',
description: 'Empty',
value: 'test',
},
])
editrow.addComponents(editmenu);
const editembed = new MessageEmbed()
.setColor('YELLOW')
.setTitle('Edit tickettype')
.setAuthor({ name: interaction.user.username})
.setDescription('Select the tickettype you want to edit')
await interaction.reply({ embeds: [editembed], components: [editrow], ephemeral: true})
}
break;
我的控制臺給了我以下輸出:
[SQL] Connected to the MySQL server! Connection ID: 95
[DISCORD] Succesfully established connection to Discord!
[
RowDataPacket {
id: 1,
name: 'Test',
emoji: '<:thumbsup:>',
guild_id: 933323734322913300,
prefix: 'test',
openheader: 'Test Ticket',
openmsg: 'Welcome, this is a test.'
}
]
沒有錯誤。仍然不和諧沒有添加它。它看起來像這樣:
選擇選單的不和諧視圖
我不知道,我做錯了什么。請幫幫我。提前致謝
uj5u.com熱心網友回復:
當您從 sql 獲取資料時,您的代碼不會等待它。相反,它會繼續,并且您在查詢中提供的回呼函式只會在查詢完成后執行。這就是為什么您可以選擇2 Test但沒有結果選項的原因。解決它的一種方法是將結果之后的所有代碼移動到回呼函式中,然后它們只會在查詢完成后執行
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/486973.html
標籤:javascript sql 节点.js 不和谐 不和谐.js
上一篇:兩個COUNT問題的語法?
