Angular Http - toPromise or subscribe Angular Http - toPromise or subscribe angularjs angularjs

Angular Http - toPromise or subscribe


If you like the reactive programming style and want to be consistent within your application to always use observables even for single events (instead of streams of events) then use observables. If that doesn't matter to you, then use toPromise().

One advantage of observables is, that you can cancel the request.

See also Angular - Promise vs Observable


I think as long as the response is not a data stream that you're going to use, then you'd better use the .toPromise() approach, because it's meaningless to keep listening to a response that you don't need and it's not even going to change.

UPDATE

.toPromise() is now deprecated in RxJS 7, they replaced it with something better firstValueFrom and lastValueFrom.

So your code should look like this:
await lastValueFrom(httpRequest$)

For more info about this check these links:
https://rxjs.dev/deprecations/to-promise
https://www.youtube.com/watch?v=3aeK5SfWBSU


Default http requests in angular emits observables. It can be converted to promise by calling toPromise(). But it is not required. Angular unsubscribes the http request once it gets resolved by calling

   `_xhr.removeEventListener('load', onLoad);    _xhr.removeEventListener('error', onError);    _xhr.abort();`

Observables are cancellable, but promises are not.

The open request remain even after the component gets destroyed leading to memory leakage, which can be prevented by unsubscribing the observable or calling the destroy method once the component gets destroyed. Ways to unsubscribe to prevent memory leaks

Conclusion, better to use observables with memory leak prevention techniques.