I am getting into Node, and being thrown into the world of async programming.
I thoroughly read this article on Mozilla's site (along with many other links teaching about the async and await keywords):
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/Async_await
I have a project I am starting that will require numerous database calls, one after another. Some queries will rely upon the previous one's results. That being said, I decided I better practice and write some testing code.
Here is my testing code:
var users, items;
const getData = async function(){
    // This is a DB call. Will take
    // a little bit of time to complete.
    setTimeout(() => {
        var queryResults = "A list of items";
        items = queryResults;
    }, 1000);
    return items;
}
const getUsers = async function(){
    setTimeout(() => {
        var queryResults = "A list of items";
        users = queryResults;
    }, 1000);
    return users;
}
const init = async function(){
    var itemSuccess = await getData();
    var userSuccess = await getUsers();
    console.log(`Here is your items: ${items}, and here are your users: ${users}`);
}
init();
My code failed with:
Here is your items: undefined, and here are your users: undefined
So naturally I headed back to Mozilla. I re-read the docs, and tried a few changes. Still, no success. Ultimately I ended up back at my original code above.
I cannot see why this is failing. I am simulating the time a query would take by using a timeout. If async does what it says, both functions should return their value, and then my console log should print out the correct results.
Does anyone see where I am going wrong?
Thank you.
 
     
     
    