Asynchronous programming in JavaScript
Normally, a program runs synchronously, which means that each line of code is executed one after the other. Let's take, for instance, these two lines of code:
const x = 3 + 4; console.log(x);
Those two lines will run in order. The result of 3 + 4 will be assigned to the x constant, and then the variable x will be printed on the screen using console.log. The console.log function can't start until x is assigned.
But there are tasks, such as network requests, disk access, or any other I/O operation, that are time-consuming, and we don't necessarily want to wait for those tasks to finish to keep executing our code. For instance, we could start downloading a file, perform other tasks while that file is loading, and then check that file when the download is completed. Asynchronous programming will allow us to execute those long-running tasks without blocking our code.
An asynchronous function returns a Promise immediately...