This would probably be more clear if you used `success` and `error` callbacks rather than handling errors in `complete` - `complete` fires after `error` (it's like a `finally` construct).