【发布时间】:2021-05-01 12:46:06
【问题描述】:
这是我发送嵌入的代码,上面写着“正在加载商店,点会发生变化”。但是,我收到一条非常奇怪的错误消息,它首先告诉我错误在 msg.delete() 处,带有“UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'delete' of undefined”,然后在第二个 msg.edit () 说“无法读取未定义的属性‘编辑’”。我搜索了文档和许多论坛,但 .then() 语法应该是正确的。有什么想法吗?
var embed = new Discord.MessageEmbed().setColor("GOLD").setTitle("Loading shop");
msg.channel.send(embed)
.then(msg => {setTimeout(()=>{msg.edit(embed.setTitle("Loading shop."))}, 500)})
.then(msg => {setTimeout(()=>{msg.edit(embed.setTitle("Loading shop.."))}, 500)})
.then(msg => {setTimeout(()=>{msg.edit(embed.setTitle("Loading shop..."))}, 500)})
.then(msg => {setTimeout(()=>{msg.edit(embed.setTitle("Loading shop"))}, 500)})
.then(msg => {setTimeout(()=>{msg.edit(embed.setTitle("Loading shop."))}, 500)})
.then(msg => {setTimeout(()=>{msg.edit(embed.setTitle("Loading shop.."))}, 500)})
.then(msg => {setTimeout(()=>{msg.edit(embed.setTitle("Loading shop..."))}, 500)})
.then(msg => {msg.delete()});
【问题讨论】:
-
then链接到下一个then及其返回值 - 所以你需要在每个setTimeouts 之后return msg -
如果你想从闭包中获取
msg,则不要使用msg参数,因为它可能可用 - 所以msg =>只是变成() =>
标签: promise discord.js bots loading