javascript async function not return promise