Exactly, a task will either be resolved or rejected (and all tasks from the current). That is up to the user to decide. Like in my app, I'll use resolve even if an ajax call fails, since I want the rest of the promises to be handled.