Javascript is a single threaded programming language, that means it only has ONE call stack and ONE memory heap which is responsible for ONE task at ONE time. If it only does ONE task per ONE time, it is such a big waste of time and resources! And yes, asynchronous is the rescuer.
console.log('1');setTimeout(() => {console.log('2');}, 3000);console.log('3');