module.exports SyntaxError:等待仅在异步函数中有效

时间:2019-11-16 07:30:14

标签: node.js asynchronous discord.js

一段时间以来,我的代码一直存在问题。我想将货币命令放在单独的文件中,但是我不知道如何解决错误await is an async function。如果有一种方法可以使文件中的所有代码都异步读取,那将是惊人的,但否则,只有一种使模块中的await正常工作的方法会很棒。

命令之一:

//coins.js
module.exports = {
    name: 'balance',
    execute(message, args){
        var output = await eco.FetchBalance(message.author.id)

        const balembed = new Discord.RichEmbed()
        .setAuthor(message.author.avatarURL)
        .setTitle(`${floweremote} | ${message.author.username}'s Balance`)
        .setDescription(`${floweremote} ${output.balance}`)
        .setColor(0xFF8AFF)
        .setFooter(`Akasuki ${version}`, client.user.avatarURL)
        .setTimestamp(new Date());            
        message.channel.send(balembed);
        }
    }

我如何加载代码:

//index.js
if (command === 'balance') {
    client.commands.get('balance').execute(message, args);
}

分布在文件(coins.js)中的是其他带有await的行,当然它们都有相同的问题。我了解发生了什么问题,只是不知道如何解决。很抱歉,这个问题看起来很傻。

谢谢您的光临。

1 个答案:

答案 0 :(得分:0)

那么,您可以将async放在execute()方法的前面,如下所示:

async execute(message, args) { ... } 

,然后将允许您在该函数中使用await

或者,您可以只使用.then()代替await