title: this.async() in yeoman-generator
body: <p>I am learning how to write a yeoman-generator. I have a question regarding the code below. It says by adding <code>var done = this.async();</code> and call the method later in callback, we can make the function <code>askFor()</code> a asynchronized function. Could someone please explain why?</p>
  
  <pre><code>askFor: function() {
      var done = this.async();
  
      // Have Yeoman greet the user.
      this.log(yosay('Welcome to the marvelous Myblog generator!'));
  
      var prompts = [{
          name: 'blogName',
          message: 'What do you want to call your blog?',
          default: 'myblog'
      }];
  
      this.prompt(prompts, function(props) {
          this.blogName = props.blogName;
  
          done();
      }.bind(this));
  }
  </code></pre>
  
  <p>Here is the code of <code>this.async</code></p>
  
  <pre><code>this.async = function() {
      return function() {};
  }
  </code></pre>