promises vs observables
Promises :
Promise Syntax:
⛔️Promises are suitable for single asynchronous operations like fetching data from an API.promises are suitable for handling a single asynchronous value or error.
Observables :
⛔️Observables are ideal for handling streams of data, such as user input, WebSocket events, or HTTP responses, where multiple values might be emitted over time.
Table
Promises | Observables | |
---|---|---|
Emit a single value at a time | Emit multiple values over a period of time. | |
Eager Execution: Promises are eager, meaning they start execution immediately after creation.Are not cancellable. | Are lazy: they’re not executed until we subscribe to them using the subscribe() method. | |
Don’t provide any operations | Provide the map for forEach, filter, reduce, retry, and retryWhen operators.Leverage Rxjs with Observables | |
Push errors to the child promises | Deliver errors to the subscribers. | |
Immutable: Once a promise is settled (either resolved or rejected), its state cannot be changed. | Mutable: Observables are mutable and can emit multiple values over time. |
const promise = new Promise((resolve, reject) => {
// Asynchronous operation
if (/* operation successful */) {
resolve(result);
} else {
reject(error);
}
});
promise.then(
(result) => {
// handle success
},
(error) => {
// handle error
}
);
Observable Syntax:
import { Observable } from 'rxjs';
const observable = new Observable((observer) => {
// Asynchronous operation
if (/* operation successful */) {
observer.next(result);
observer.complete();
} else {
observer.error(error);
}
});
const subscription = observable.subscribe(
(value) => {
// handle each value
},
(error) => {
// handle error
},
() => {
// handle completion
}
);
// Unsubscribe when done
subscription.unsubscribe();
Comments
Post a Comment