异步/等待不执行forEach中的代码

时间:2020-02-27 00:45:32

标签: javascript async-await discord discord.js

我有一个分配给变量的函数,该函数遍历一组成员,并在嵌入中为每个成员显示一条随机的通道+消息,但embed.addField最终从未运行。

经过大量的故障排除和搜索之后,我一直无法弄清为什么它不起作用。我尝试创建一个单独的async函数,在async()之前添加/删除const displayStuff = ()无效。

下面是代码:

const displayStuff = () => message.guild.members.forEach(async (m) => {
    const randChannel = message.guild.channels.filter(c => c.type === 'text').random();
    const randMsg = await randChannel.fetchMessages({ limit: 100 });

    embed.addField(m.displayName,
        **Random Channel:** ${randChannel.toString()}
        **Random Message:** ${randMsg.random().content.substring(0, 50)}`,
    true);
});

我可以确认问题不是不是,而是randMsgawait/async是嵌入变量或其他任何问题,因为删除变量并仅显示随机渠道没有问题。

此外,在console.log(randMsg.random().content)之后执行const randMsg会记录随机消息的内容(应如此),但是embed.AddField仍然没有运行,只要等待randChannel.fetchMessages存在。

非常感谢您的协助,谢谢

0 个答案:

没有答案