I have an express API that reads from my fauna database. I have a class setup called Database that handles all my fauna queries, and an async method called getQuotes that essentially gets a fauna document, the general structure is like this:
async getQuotes() {
// note, `query` is an async function
const doc = this.client.query(...).then((res) => {
const data = ...; // to keep this short I'm not gonna show this
console.log("faunadb handler: " + data); // just for debug
return Promise.resolve(data);
})
}
Then when I start the express API, I have it call the getQuotes method and log the data (just for debug).
const quotes = db.getQuotes().then((quotes) => {
console.log("fauna consumer: " + quotes);
})
Now, when I run the app, I get the following output:
starting server on port.... ussual stuff
fauna consumer: undefined
faunadb handler: { ... }
The fauna consumer code runs before we actually get the promise from the fauna query API. I need to use .then because node for some reason doesn't allow me to use await. Does anyone know how to solve this? Thank you!
(using node version v16.14.0
, running on Arch Linux
)