【发布时间】:2026-01-04 20:55:02
【问题描述】:
我想在函数中返回值之前等待一个错误。
我的代码:
async function CheckIfManagerIsInServer(client, server_id, member) {
let isIn = { isIn: true, isNotIn: [] };
if (CheckIfIsInChain(server_id)) {
database.chains.forEach(chain => {
if(chain.membersID.includes(server_id)) {
chain.membersID.forEach(async server => {
client.guilds.cache.get(server)?.members.fetch(member).catch((err) => {
console.log(err)
console.log("not exists")
isIn.isIn = false;
isIn.isNotIn.push(server)
console.log(isIn)
return;
})
})
}
})
console.log(isIn)
}
console.log(isIn)
return await Promise.resolve(isIn);
}
如您所见,有一个问题。
当函数已经返回isIn 时触发捕获。
我怎么能等?
提前感谢,抱歉英语不好!
【问题讨论】:
-
Promise.resolve(isIn);并不意味着“给我一个承诺,当事情发生变化时会神奇地解决isIn”。您真正需要等待的是这些循环中的异步.fetch(member)调用。
标签: javascript node.js function try-catch