如何将有关从通道获取的消息的信息放入 JSON 文件?

The*_*per 0 javascript json node.js discord.js

因此,我想从特定频道中获取所有嵌入消息,并在其描述中写入标签。

我首先使用channel.fetchMesssages()和解析 promise来获取嵌入的和简单的消息。我得到了集合,我可以将消息的值一一打印到控制台,但我无法将它们添加到对象中,然后将它们保存为 JSON 文件。

这是代码:

var news = client.channels.get('id')
var specialMessages = new Object()

news.fetchMessages()
    .then(messages => {
        messages.forEach((m, i) => {
            specialMessages[m.content] = m.id
        })
    })

console.log(specialMessages)
fs.writeFileSync('messages.json', JSON.stringify(specialMessages, null, 2))
Run Code Online (Sandbox Code Playgroud)

问题是我似乎没有添加任何东西,specialMessages因为它只输出{}到控制台。它背后有什么魔力?

moh*_*eti 5

console.log()获取消息之前执行,因为后一个操作是异步的并且不会立即完成(阅读Promises)。

您应该在循环之后立即放置console.log(...)fs.writeFileSync(...)forEach(),但在.then()块的范围内