The way callback functions are specified is more flexible
Previously, you had to specify promises before starting asynchronous tasks: Start asynchronous tasks => return promie objects => Bind callbacks to Promise objects (you could even specify/multiple after the asynchronous task ends)
Support for chained calls, which can solve the callback hell problem
What is callback hell
Callback functions are nested calls, and the result of asynchronous execution of external callback functions is nested callback execution conditions
Callback hell’s faults
Not easy to read and not easy to handle exceptions
The solution
The Promise chain calls async/await