3 ms·
A final .catch().then() swallows the error, .always() does not.
by untog 9y ago
A final .catch().then() swallows the error, .always() does not.
- joshribakoff 9y agoCatch "swallows" errors by design. Unless you re throw. chaining another then has no effect on the behavior of a previous catch.
- untog 9y agoRight, but in the context of the OP's question you'd need the second .then() to mirror what .always() is doing. The point is, there is no way to do .catch().then() and throw the error unless you do some hideous type checking hack cludge. Hence the need for .always().
- JSDave 9y agoYea, the `catch` would probably have to set an 'errors' object on the response. The following `then` would then decide whether or not to throw an error based on that. Not pretty. Also, I think `finally` makes your code easier to read. I always put the same kind of cleanup logic in there, everyone on the team knows what to expect in that block.