Так не работает.Асинхронная функция возвращает обещание.console.log вне асинхронной функции не будет ждать ожидания.Вы можете остановить свой код ВНУТРИ асинхронной функции.
async function getData() {
const answer = await web3.eth.getAccounts()
console.log(answer) /* this console.log will be wait */
return answer
}
getData().then(answer => console.log(answer))
Если бы он работал так (удерживая код вне функции), он остановил бы весь процесс в браузере (например, функция оповещения) ипользователю тоже придется подождать.