Book Image

jQuery Design Patterns

By : Thodoris Greasidis
Book Image

jQuery Design Patterns

By: Thodoris Greasidis

Overview of this book

jQuery is a feature-rich JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a variety of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript. jQuery solves the problems of DOM manipulation, event detection, AJAX calls, element selection and document queries, element attribute and data management, as well as object management utilities. This book addresses these problems and shows you how to make the best of jQuery through the various design patterns available. The book starts off with a refresher to jQuery and will then take you through the different design patterns such as facade, observer, publisher/subscriber, and so on. We will also go into client-side templating techniques and libraries, as well as some plugin development patterns. Finally, we will look into some best practices that you can use to make the best of jQuery.
Table of Contents (18 chapters)
jQuery Design Patterns
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Chaining Promises


Every invocation of the then() method returns a new Promise, whose both final status and result depends on the Promise that the then() method was called on, but is also subject to the value returned by the attached callbacks. This allows us to chain calls of the then() method, enabling us to compose Promises by serially joining them. This way, we can easily orchestrate both asynchronous and synchronous code, where each chaining step propagates its result to the next one and allows us to construct the final result in a readable and declarative way.

Let's now proceed to analyzing all the different ways that chaining of calls to the then() method works. Since we will be focusing on the concepts of Promise composition by chaining, which works the same as jQuery and ES6 Promises, let's suppose that there is a p variable that is holding a Promise object created by either of the following lines of code:

var p = $.Deferred().resolve(7).promise(); 
//or 
var p = Promise.resolve(7...