async функция всегда возвращает промис, разрешенный с тем значением, которое было указано в return.
return value в async функции эквивалентно return Promise.resolve(value), если value не является Promise. А если value - Promise, то оно и возвращается.
Что бы достать значение из возвращенного Promise - используется оператор await
async function f () {return 42}
let a = f() // a = Promise.resolve(42)
let b = await f() // b = 42
Поэтому переписываем alert (await f())
|