I was just trying different combinations of async await problem statements and I tried this,
basically I have two functions promise1() and promise2() which return two promises which resolve values 10 and 20 after 3 and 1 seconds respectively. Below is the code that I have written    
function promise1()
{
        return new Promise((resolve,reject)=>{
                setTimeout(()=>{
                        resolve(10)
                },3000)
        })
}
function promise2()
{
        return new Promise((resolve,reject)=>{
                setTimeout(()=>{
                        resolve(20)
                },1000)
        })
}
async function sum()
{
        let num1 = await promise1();
        let num2 = await promise2();
        return num1+num2;
}
sum().then(s => console.log(s))as in the above code if I was able to apply .then() to sum then is it a promise?
when I did console.log(typeof sum) its saying sum is a function not an object so what exactly are async functions? I have tried searching the answer for this behaviour but couldn't find any sources that would correctly answer. It would be a great help for me if someone answered this query or tell me the online sources or books that would get me the answer
my node version is v10.15.3 
thank you
 
     
    