An Observable (from the RxJS library) represents a stream of values over time that you can subscribe to. Angular uses RxJS pervasively — HTTP requests, router events, forms, and EventEmitter are all Observable-based — so understanding them is essential.
Observable vs Promise
Promise: a SINGLE future value, eager, can't cancel
Observable: ZERO-to-MANY values over time, lazy (runs on subscribe), CANCELLABLE
