socket.io контролирует порядок выполнения с вложенными асинхронными и ожидающими - PullRequest
0 голосов
/ 21 марта 2019

В моем приложении несколько пользователей отправляют данные «сразу» через 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);
}

Есть лиВ любом случае я могу предотвратить выполнение следующего экземпляра функции до того, как завершится ее предшественник?

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...