Both promise & observable help us to asynchronous requests callback.
The important differences are:
Angular 2 promises handle a single callback when an async requests callback completes or fails.
Angular 2 provides a new pattern for running asynchronous requests, called Observables.
Angular 2 uses an analogous pattern called Observables. The Observable classes in Angular 2 are provided by the ReactiveX library.
Angular 2 observable allows passing zero or more events where the callback is called for each event.
Observable provides operators like map, forEach etc.