The absolute reference: https://www.promisejs.org/
- Promises are nothing but a chain of success/fail events
- We can use promises in nested callback which are dependent to each other this is termed as a callback hell It is hard to understand and creates lot of confusion.
- Promises can handle global errors.
- Promises can be chained (you don't have this encapsulation like callbacks)
- Promise is an interface class that helps you to control if the call to a function - that may be executed asynchronously - has finished successfully or with an error. It is very similar to have a try-catch-finally block for async calls.