InterviewHubPRO
Section Overview
Q399

Question 399 of 521

Part 6: Async Internals, Memory, Microtasks & Web APIs (329 - 403)

77%
JavaScript Internals (521 Qs)•Part 6: Async Internals, Memory, Microtasks & Web APIs (329 - 403)

What are the differences between promises and observables

Some of the major difference in a tabular form

PromisesObservables
Emits only a single value at a timeEmits multiple values over a period of time(stream of values ranging from 0 to multiple)
Eager in nature; they are going to be called immediatelyLazy in nature; they require subscription to be invoked
Promise is always asynchronous even though it resolved immediatelyObservable can be either synchronous or asynchronous
Doesn't provide any operatorsProvides operators such as map, forEach, filter, reduce, retry, and retryWhen etc
Cannot be canceledCanceled by using unsubscribe() method

Practical Code Example

javascript
// Promises vs Observables:
// Promise: Eager, returns a single value, not cancellable
const p = new Promise(resolve => resolve(42));

// Observable (RxJS): Lazy, streams multiple values over time, cancellable:
// const obs$ = new Observable(sub => { sub.next(1); sub.next(2); });
// const sub = obs$.subscribe(val => console.log(val));
// sub.unsubscribe(); // Can cancel subscription!