Bogdan M. Bogdan M. - 1 year ago 76
Javascript Question

Returning an awaited value returns a Promise? (es7 async/await)

const ret = () => new Promise(resolve => setTimeout( () => resolve('somestring'), 1000));

async function wrapper() {
let someString = await ret();
return someString;

console.log( wrapper() );

It logs
Promise { <pending> }
Why does it return a Promise instead of

I'm using the Babel ES7 preset to compile this.

Answer Source

Async functions return promises. In order to do what you want, try something like this

wrapper().then(someString => console.log(someString));

You can also await on wrapper() like other promises from the context of another async function.

console.log(await wrapper());
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download