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!