title: "Done" function in javascript
body: <p>For example, I read Grunt documentation on Creating Tasks. In "Tasks can be asynchronous" section, there is a use case of "done" function, I wonder why do we need that.</p>
  
  <pre><code>grunt.registerTask('asyncfoo', 'My "asyncfoo" task.', function() {
    // Force task into async mode and grab a handle to the "done" function.
    var done = this.async();
    // Run some sync stuff.
    grunt.log.writeln('Processing task...');
    // And some async stuff.
    setTimeout(function() {
      grunt.log.writeln('All done!');
      done();
    }, 1000);
  });
  </code></pre>