Promises in JavaScript
Promise in JavaScript - a commitment that sometime in the future, your code will get a value or an error from some operation
- examples for values: reading a file or getting JSON from a Web site
- examples for errors: the file doesn’t exist or the Web site is down
- A
Promise is a JavaScript class that we can create promises from
Three States of Promises
Pending - the Promise object has not resolved. Once it does, the state of the Promise object may transition to either the fulfilled or rejected state.
Fulfilled - Whatever operation the Promise represented succeeded and your success handler will get called. Now that it’s fulfilled, the Promise:
- must not transition to any other state.
- must have a value, which must not change.
Rejected - Whatever operation the Promise represented failed and your error handler will get called. Now that it’s rejected, the Promise:
- must not transition to any other state.
- must have a reason, which must not change.
Promise Syntax
.then is an instance method for a Promise
- first argument is expected to be a callback function that will be invoked when the promise is resolved, return value is passed into the next
.then
- second argument is expected to be a callback function that will be invoked when the promise is rejected
.then can be chained on a Promise that will be executed one right after the other
.catch is an instance method on a Promise to catch errors on any part of the promise or the .then chain
- argument passed in is expected to be a callback function
Learning Objectives
- Instantiate a
Promise object
- Use
Promises to write more maintainable asynchronous code
- Use the
fetch API to make Promise-based API calls