Promise
In the event that an async operation succeeds or fails, a Promise handles a single event. Although ES6 Promise does not yet support cancellation, there are promise libraries that do.
Observable
Similar to a stream (in many programming languages), an observable permits the passing of zero or more events, with the callback being triggered by each event.
Because it offers Promise's characteristics and more, Observable is frequently chosen over Promise. Observable allows you to handle 0 events, 1 event, or numerous events. In each situation, you can use the same API.
Being cancellable is another advantage that Observable has over Promise. The Subscription of an Observable allows you to cancel the subscription if the outcome of an HTTP request to a server or another expensive async operation is no longer required, whereas a Promise will eventually call the success or failed callback even if you no longer require the notification or the result it provides.
A Promise begins right away, but an Observable doesn't begin until you subscribe to it. Due to this, Observables are referred to as lazy.
I hope this helps you understand the difference between them.