Problem Statement
How are Observables different from Promises, and when would you choose each in Angular?
Explanation
Observables are streams that can emit many values over time, support cancellation (unsubscribe), and come with a rich operator set (map, switchMap, retry, etc.). Promises emit exactly one value and cannot be cancelled. Use Observables for UI events, HTTP flows that may be retried/cancelled, websockets, and composition. Use Promises for simple, single-result async tasks or interop with APIs that already return Promises.