Middle
Quelles sont les similitudes et différences entre Observable et Promise?
sobes.tech IA
Réponse de l'IA
Similarités:
- Représentent des opérations asynchrones.
- Utilisent des fonctions pour traiter le résultat (résolu) et l'erreur (rejetée).
Différences:
| Caractéristique | Promise | Observable |
|---|---|---|
| Valeur/événement | Renvoie une valeur ou une erreur. | Renvoie 0 ou plusieurs valeurs au fil du temps. |
| Annulation | Impossible d'annuler après le démarrage. | La souscription peut être annulée. |
| Multiples abonnés | Exécution unique indépendamment des abonnés. | Une nouvelle souscription entraîne généralement une nouvelle exécution (Observable à froid). |
| Lazy | Commence à s'exécuter immédiatement après sa création. | Ne commence à s'exécuter qu'après la souscription. |
| Opérateurs | Pas d'opérateurs intégrés pour la transformation. | Dispose d'une riche gamme d'opérateurs (map, filter, merge, etc.). |
| Exemples d'utilisation | Requêtes HTTP, actions différées. | Événements UI, connexions WebSocket, intervalles. |
Exemple d'Observable:
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
subscriber.next(2);
setTimeout(() => {
subscriber.next(3);
subscriber.complete();
}, 1000);
});
Exemple de Promise:
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Données reçues');
}, 1000);
});