Chapter 5. Control Flow, Asynchronous Patterns, and Exception Handling
Node might seem intimidating at times, with discussions about
asynchronous events and callbacks and new objects such as EventEmitter
—not to mention all that new
server-side functionality we have to play with. If you’ve worked with any of
the modern JavaScript libraries, though, you’ve experienced much of the
functionality that goes into Node, at least when it comes to asynchronous
development.
For instance, if you’ve used a timer in JavaScript, you’ve used an
asynchronous function. If you’ve ever developed in Ajax, you’ve used an
asynchronous function. Even the plain old onclick
event handler is an
asynchronous function, since we never know when the user is going to click
that mouse or tap that keyboard.
Any method that doesn’t block the control thread while waiting for
some event or result is an asynchronous function. When it comes to the
onclick
handling, the
application doesn’t block all other application processing, waiting for that
user’s mouse click—just as it doesn’t block all functionality while the
timer is in effect, or while waiting for the server to return from an Ajax
call.
In this chapter, we’re going to look more closely at exactly what we mean by the term asynchronous control. In particular, we’re going to look at some asynchronous design patterns, as well as explore some of the Node modules that provide finer control over program flow when we’re working in this new environment. And since asynchronous ...
Get Learning Node 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.