1) Promises provide a way to write asynchronous code in a more readable sequential style by avoiding deeply nested callbacks. 2) Promises represent the eventual completion (or failure) of an asynchronous operation, and allow consumers to attach callbacks instead of passing callbacks into asynchronous functions. 3) Promises are being adopted in many web standards and browser APIs to provide a consistent approach to asynchronous programming across the web platform.