Writing cleaner asynchronous code using promises

Promises are an alternative pattern to callbacks for writing asynchronous code. A promise represents an operation that hasn't completed yet but is expected to do so in the future. As the name promise suggests, a promise is a contract to eventually provide a value or a reason for failure (that is, an error). You may already be familiar with this pattern from Tasks in .NET or Futures in Java. A promise has three possible states:

  • pending represents an in-progress operation
  • fulfilled representing a successful operation, with a result value
  • rejected representing an unsuccessful operation, with a failure reason

When executing a single operation, the callback-based and promise-based approaches appear quite ...

Get Learning Node.js for .NET Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.