【发布时间】:2021-02-04 05:11:33
【问题描述】:
我在记录数组时遇到问题。在我的 discord bot 中,我检索了我的 bot 所在的所有服务器 ID。我的 bot 对每个服务器都有不同的语言(默认为英语),所以我需要跟踪它,以便我可以使用该语言发送消息那得救了。我不想请求数据库,而是想构建一个小缓存(在 bot 上启用检索每个服务器的语言)。但问题是,即使我插入,将对象推送到数组,数组仍然是空的(我 console.loged 它)。所以问题是......如何?
serverIdd.forEach(async (server) => {
let serv = await find("serverList", parseFloat(server));
if (!serv[0]) {
await insertServer(server, defLang); // returns promise
serverLangCache.push({ id: server, lang: defLang })
} else {
console.log(server + " is already in!");
let lang = serv[0].lang;
serverLangCache.push({ id: server, lang: lang})
}
});
console.log(serverLangCache); <-- this executes before the foreach does
//Logs:
//[] <-- the console log logs an empty array
//436072156871262200 saved to serverList <-- now the foreach is going off
//490471288255676400 saved to serverList <-- now the foreach is going off
【问题讨论】:
-
我不认为
.join()做你认为它做的事。你的意思是.push()吗? -
好吧,奇怪的事情发生了。我使用推送,当服务器在数据库中时,它会记录pastebin.com/LWdXdhBS,但如果服务器不在阵列中,它甚至不会记录阵列
标签: node.js mongodb discord.js