Object JavaScript – Promises By Integrating Q with jQuery

6327_image_58FAEDFAAs you have seen in previous posts, a promise in JavaScript represents the result of a task, which may or may not have completed yet. Or in simpler words, what to expect for a JavaScript call.

Q was designed to provide a robust way to provide you ways to write asynchronous code cleanly.

You can integrate the robustness of Q with jQuery promises.

Why Q?

687474703a2f2f6b7269736b6f77616c2e6769746875622e696f2f712f712e706e67As you learned in Asynchronous JavaScript Promises Using Q , you get additional goodness by using Q rather than jQuery’s promises. The main features being:

  • Exception handling
  • Several additional methods give you deep control of the promise
  • An error (or in a promise reject) in one chained thens will be handled “down the chain” by a later

Q with jQuery

When you pass in jQuery into Q, it coerces the jQuery promise into a Q promise that you can then use.

The following code snippet returns a Q promise from a jQuery AJAX or jQuery getJSON call.

You can continue to chain the promise and get all the goodness of Q.

Sample Code

You can get sample code for this post in the DevDays GitHub repository: https://github.com/devdays/object-javascript/tree/master/Q