В моем приложении несколько пользователей отправляют данные «сразу» через 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);
}
Есть лиВ любом случае я могу предотвратить выполнение следующего экземпляра функции до того, как завершится ее предшественник?
Заранее спасибо!