As per the Angular documentation, you should use Observable.
Observables provide support for passing messages between publishers
and subscribers in your application. Observables offer significant
benefits over other techniques for event handling, asynchronous
programming, and handling multiple values.
Source: https://angular.io/guide/observables
The second sentence from the quote above is key, specifically the mention of "other techniques", i.e., promises.
Additionally, it's not much harder to see the value (source code) of your http responses. In fact, the values are accessible once the Observable is subscribed to.
something.service.ts
...
public getSomething(): Observable<HttpResponse> {
return this._http.get<HttpResponse>('/api/something');
}
...
something.component.ts
...
public getSomethingMethod() {
this._somethingService.getSomething()
.subscribe((res: HttpResponse ) => {
// Do something with res (values are now visible)
})
}
...