Мне необходимо выполнить несколько запросов
.countDocuments
к базе, обвновить счетчик в каждом из них, и сделать
return
этого счетчика.
Я попробовал сделать async/await, но почему то срабатывает через раз. В один раз в
.then
обновленный счетчик приходит, в другой раз приходит стандартный 0.
Вот как я делал:
const countBookedAndOrderedBook = async () => {
let bookedAndOrderedBooksArr = 0;
await BookedBooks.countDocuments(
{ userId },
(bookedBooksrr, countBookedBooks) => {
if (bookedBooksrr) throw bookedBooksrr;
console.log({ countBookedBooks });
bookedAndOrderedBooksArr += countBookedBooks;
}
);
return bookedAndOrderedBooksArr;
};
countBookedAndOrderedBook().then(count => {
console.log(
{ count },
servConf.maxBooksPerOneUserBookedAndOrderedAtTheSameTime
);
...
Если делать запросы подряд то одни выполняются когда захотят, видимо есть какая то задержка, и если сделать несколько запросов подряд и потом вывести
console.log(count)
то count будет 0, а если в консоль по таймауту выводить то всё норм, но таймаут это бред.
В примере один запрос, но в теории их должно быть много.
Может делаю не так?