title: Is npm request asynchronous?
body: <p>I can't understand Javascript asynchronous behavior.</p>
  
  <p>I always thought that 'request' module would be synchronous. I used it , though, in my code, and something went absolutely wrong.</p>
  
  <p>An example:</p>
  
  <pre><code>download_page = function(item) {
      page = request.get( { url: 'http://test-fdfdfd.com/' + String(item) })
  }
  node = new App();
  node.on('ready', () =&gt; {
      console.log("Ready.");
      Array.from(Array(3).keys()).forEach(item =&gt; download_page(item));
      node.stop()
  })
  </code></pre>
  
  <p>In that code, node should stop only after the three requests were completed. However, that didn't happen and I don't know why.</p>
  
  <p>Could someone give me an explanation?</p>