在我的应用程序中,我有多个用户通过socket.event一次提交数据。 因为我需要知道每个用户是否都成功提交了他们的数据,所以我尝试确定第一个和最后一个条目。 为此,我在事件上调用了一个异步函数,该事件本身包括“ await”。
基本上,该函数在数据库中查找值,然后根据其是否存在执行某些操作。
因此,我需要在调用该函数的下一个实例之前完全执行该功能块(及其等待状态)。
但是,我发现在函数内部调用await时,该函数的下一个实例开始执行,这显然使所有事情搞砸了。
socket.on("entries", async entries => {
const firstEntry = await match.noEntries(mid);
if (firstEntry) {
//do sth
}
await match.submitEntries(mid, socket.pid, entries);
});
//FUNCTION
noEntries: async (mid) => {
const entries = await database.query("...");
return (entries.length == 0);
}
有什么办法可以阻止功能的下一个实例在其前任完成之前执行?
谢谢!