Сначала немного контекста, у меня есть функция asyn c, которая регистрирует сообщения в базе данных MongoDB.
async function log_message(sender, conversationId, text) {
try {
const msg = new Message({
sender: sender,
conversationId: conversationId,
text: text
});
await msg.save();
console.log("Done");
} catch (e) {
console.log("An error happened while logging the message: " + e)
}
}
Теперь у меня есть другая функция asyn c, которая запускается при получении сообщения и заботится о его обработке и получении некоторых данных. Как только эта функция сработает, я вызываю log_message, чтобы записать сообщение в моей базе данных, но я не хочу вызывать его с помощью await, в противном случае я бы подождал, пока функция log_message вернется, прежде чем обрабатывать сообщение, замедляя обработка сообщений.
async getReply(username, message) {
log_message("user", username, message);
console.log("HI");
let reply = await this.rs.reply(username, message, this);
return reply;
}
Тем не менее, Jetbrains Webstorm выдает мне это предупреждение «Отсутствует ожидание вызова функции asyn c». Теперь я провел несколько тестов, и если я вызываю функцию без ожидания, система ведет себя так, как я ожидал, сообщение обрабатывается, и моя функция регистрации записывает данные в базу данных асинхронно без прерывания. Если вместо этого я поставлю ключевое слово await перед вызовом функции регистрации, выполнение кода в основной функции будет приостановлено до тех пор, пока не будет записана БД.
Может кто-нибудь сказать мне, есть ли какие-нибудь fl aws каким образом я намеревался использовать ключевые слова async / await?