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