Promises have been introduced 2015 to allow for more readable asynchronous code than is possible with callbacks.

The main difference between callbacks and promises is that with callbacks you tell the executing function what to                                            do when the asynchronous task completes, whereas with                                            promises the executing function returns a special object to                                         you (the promise) and then you tell the promise what to do                                         when the asynchronous task completes.