I have two questions from the following example:
Why is does x log before y? Why is x a Promise?
I'm expecting bar to wait for foo to resolve with the value 'Hello' before it logs and then returns it.
let foo = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Hello');
}, 2000);
})
}
let bar = async () => {
let y = await foo();
console.log(y);
return y;
}
let x = bar();
console.log(x);
What I'm expecting to see is
'Hello' // console.log(y)
'Hello' // console.log(x)
What I'm getting is
Promise {<pending>} // console.log(x)
'Hello' // console.log(y)
Shouldn't bar wait for foo to resolve before returning y?
Any help would be much appreciated!