RxJS presents a lot of ways to handle errors, and I'm having a hard time understanding each of them and where they're used. The more I learn about RxJS, the less I understand it.
If I'm using a pipe, there's catchError.
If I'm using tap inside the pipe, there's the optional error parameter.
If I'm using subscribe, there's also the optional error parameter.
Where do I want to use one error handler over the other? What are the use cases for the optional error parameters? If I'm using tap's error parameter, do I still need to use catchError? If I have catchError, do I still need to use subscribes error parameter?
I want to better understand each of the error handlers, and what the proper way to go about error handling is.