It would seem that deferred.then()
allows you to pass two separate callbacks for success and failure, whereas deferred.always()
takes n
number of callbacks which will all be called regardless of the outcome of the initial event.
I would say use deferred.always()
in the cases where success/failure of the initial event are not important