Both promise & observable help us to asynchronous
requests callback.
The important differences are:
Promise
Angular 2 promises handle a single callback when an async requests callback completes or fails.
Observable
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.
Reference link.