I have trouble understanding the whole concept of async/await
and have spent hours reading the documentation and trying to get an example to work. But I still do not understand why this tiny example does not work.
The result I want is for document.body.innerHTML
to contain the text "123", since doFirst()
should finish running before doSomething()
finishes.
But I always get "132", as if I haven’t used async/await at all. What am I doing wrong?
async function doFirst() {
document.body.innerHTML = document.body.innerHTML + "1";
setTimeout(function() {
document.body.innerHTML = document.body.innerHTML + "2";
}, 500);
}
async function doSomething()
{
await doFirst();
document.body.innerHTML = document.body.innerHTML + "3";
}
doSomething();
Sorry for posting this again, last time I posted this question it was marked as a duplicate. So this time I want to clarify that I’m not looking for any answers that show me how to do it properly but also for explanations on why my code does not work.