title: Why can NodeJS request set post form later using Chain API?
body: <p>I am try to figure out why we can set the form for the post request using <code>.form</code> after I have called <code>request.post</code>.</p>
  
  <p>This is the code snippet from official document</p>
  
  <pre><code>request.post('http://service.com/upload', {form:{key:'value'}})
  // or
  request.post('http://service.com/upload').form({key:'value'})
  // or
  request.post({url:'http://service.com/upload', form: {key:'value'}}, 
  function(err,httpResponse,body){ /* ... */ })
  </code></pre>
  
  <p>I am confused about the second example <code>request.post('http://service.com/upload').form({key:'value'})</code>.
  In my opinion, it should not work because once request.post(...) has been called, the request will be sent. And then the call to <code>.form</code> is like you are setting the post form after the request has been sent. So how can this work ? Is there anything wrong ?</p>