Introduction 

Observable and Promise both provide us with abstractions that help us deal with the asynchronous nature of applications.

Promise

Promises work with asynchronous operations. They either return a single value (i.e the promise resolves) or an error message (i.e the promise rejects).

Introduction 
Observable and Promise both provide us with abstractions that help us deal with the asynchronous nature of applications.
Promise
Promises work with asynchronous operations. They either return a single value (i.e the promise resolves) or an error message (i.e the promise rejects). […]