Middle
What are the similarities and differences between Observable and Promise?
sobes.tech AI
Answer from AI
Similarities:
- Represent asynchronous operations.
- Use functions to handle the result (resolved) and error (rejected).
Differences:
| Feature | Promise | Observable |
|---|---|---|
| Value/Event | Returns a single value or error. | Returns 0 or more values over time. |
| Cancellation | Cannot be canceled after starting. | Can cancel subscription. |
| Multiple subscribers | Single execution regardless of subscribers. | New unsubscription usually leads to new execution (cold Observable). |
| Laziness | Starts executing immediately after creation. | Starts executing only after subscription. |
| Operators | No built-in operators for transformation. | Has a rich set of operators (map, filter, merge, etc.). |
| Use cases | HTTP requests, deferred actions. | UI events, WebSocket connections, intervals. |
Example of Observable:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Example of Promise:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Data received');
}, 1000);
});