The majority of libraries available in the Node.js sphere tend to be implemented in such a way as to be non-blocking. This means that calling a function provided by a library will usually continue to execute the next line of code after being called, even though it has not fulfilled its intended purpose.
These types of functions tend to use either, or both, the event-driven approach or callback functions to indicate their progress. In either of these situations, we will require a function we can call once a task has been completed and for this purpose, Grunt provides us with the this.async
utility.
In this example, we'll work with the basic project structure we created in the Installing Grunt on a project recipe in Chapter 1, Getting Started with Grunt. Be sure to refer to it if you are not yet familiar with its contents.
If any of the steps in this recipe seem hard to follow, be sure to check out the Creating a basic task recipe provided earlier...