documentCount()
является функцией async
. Таким образом, он возвращает обещание. Все функции async
возвращают обещание. Таким образом, способ получения ценности из обещания такой же, как и для любого обещания. Вы используете .then()
или await
на нем. Таким образом, в getFlashCard()
вы могли бы сделать что-то вроде этого:
getFlashCard : function(colName, flashID, callback) {
documentCount().then(docCount => {
console.log(docCount);
}).catch(err => {
console.error(err);
});
}
Это предполагает, что вы правильно используете mongodb.collection().count()
и что оно возвращает обещание. Если это не так, то вам также придется это исправить (лично я не знаю mongodb).
К вашему сведению, вы создали documentCount()
в надежде превратить асинхронное значение в синхронное. Вы не можете сделать это в Javascript. В то время как await
приостанавливает выполнение внутри функции и позволяет вам писать более синхронно выглядящий код для асинхронных операций, он не работает через границу функции. Вы не можете изменить асинхронное значение на синхронное значение в Javascript. Таким образом, любой, кто хочет использовать значение docCount
, должен будет работать с ним асинхронно, как я показал выше в getFlashCard()
.