title: Angular HttpPromise: difference between `success`/`error` methods and `then`'s arguments
body: <p>According to <a href="http://docs.angularjs.org/api/ng.%24http">AngularJS doc</a>, calls to <code>$http</code> return the following:</p>
  
  <blockquote>
    <p>Returns a <strong>promise</strong> object with the standard <strong>then</strong> method and two http specific methods: <strong>success</strong> and <strong>error</strong>. The <strong>then</strong> method takes two arguments a <strong>success</strong> and an <strong>error</strong> callback which will be called with a response object. The <strong>success</strong> and <strong>error</strong> methods take a single argument - a function that will be called when the request succeeds or fails respectively. The arguments passed into these functions are destructured representation of the response object passed into the then method.</p>
  </blockquote>
  
  <p>Aside from the fact that the <code>response</code> object is destructured in one case, I don't get the difference between</p>
  
  <ul>
  <li>the success/error callbacks passed to be passed as arguments of <code>promise.then</code></li>
  <li>the callbacks passed as arguments for the <code>promise.success</code>/<code>promise.error</code> methods of the promise</li>
  </ul>
  
  <p>Is there any? What's the point of these two different ways to pass seemingly identical callbacks?</p>