Maison > interface Web > js tutoriel > Explication détaillée de Observable (objet observable) dans Angular

Explication détaillée de Observable (objet observable) dans Angular

青灯夜游
Libérer: 2021-03-30 18:49:31
avant
3430 Les gens l'ont consulté

Cet article vous fera découvrir Angular Observable. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Explication détaillée de Observable (objet observable) dans Angular

Recommandations de didacticiel associées : "tutoriel angulaire"

Objet observable (Observable)

Les objets observables prennent en charge la transmission de messages entre éditeurs et abonnés de votre application.

Les observables sont déclaratifs, c'est-à-dire une fonction définie qui publie une valeur qui ne s'exécutera pas réellement tant qu'un consommateur ne s'y abonnera pas.


Trois types de notifications qu'un objet observable peut émettre :

通知类型 说明
next 必要。用来处理每个送达值。在开始执行后可能执行零次或多次。
error 可选。用来处理错误通知。错误会中断这个可观察对象实例的执行过程。
complete 可选。用来处理执行完毕(complete)通知。当执行完毕后,这些值就会继续传给下一个处理器。

Définir les observateurs

Observateur : Le processeur utilisé pour recevoir les notifications des objets observables doit implémenter l'interface Observer. Cet objet définit certaines fonctions de rappel pour gérer les notifications qui peuvent être envoyées par l'objet observable. notifications.
Les objets Observer peuvent définir n'importe quelle combinaison de ces trois processeurs. Si vous ne fournissez pas de gestionnaire pour un certain type de notification, l'observateur ignorera les notifications de ce type.

// Create observer object
const myObserver = {
  next: (_data) => {
  	// next通知类型处理器
  },
  error: err => {
  	// error通知类型处理器
  },
  complete: () => console.log('Observer got a complete notification'),
};
Copier après la connexion

S'abonner

Une instance Observable publiera une valeur uniquement lorsqu'une instance de l'Observable est abonnée. Lors de votre inscription, vous devez d'abord appeler la méthode subscribe() de l'instance et lui transmettre un objet observateur pour recevoir des notifications.

Syntaxe : Observable.subscribe(ObserverObject), où Observable est l'instance d'objet observable et ObserverObject est l'objet observateur.

// 官网示例
// Create simple observable that emits three values
const myObservable = of(1, 2, 3);

// Create observer object
const myObserver = {
  next: x => console.log('Observer got a next value: ' + x),
  error: err => console.error('Observer got an error: ' + err),
  complete: () => console.log('Observer got a complete notification'),
};

// Execute with the observer object
myObservable.subscribe(myObserver);
// Logs:
// Observer got a next value: 1
// Observer got a next value: 2
// Observer got a next value: 3
// Observer got a complete notification
Copier après la connexion

De plus, la méthode Subscribe() peut également recevoir des fonctions de rappel définies dans la même ligne, qu'il s'agisse d'un gestionnaire suivant, d'erreur ou complet. Par exemple, l'appel Subscribe() suivant est équivalent à l'exemple précédent de spécification d'un observateur prédéfini.

myObservable.subscribe(
  x => console.log('Observer got a next value: ' + x),
  err => console.error('Observer got an error: ' + err),
  () => console.log('Observer got a complete notification')
);
Copier après la connexion

Remarque : Dans les deux cas, le gestionnaire de type de notification suivant est nécessaire, tandis que les gestionnaires d'erreur et complet sont facultatifs. L'appel

subscribe() renvoie un objet Subscription qui a une méthode unsubscribe(). Lorsque cette méthode est appelée, vous ne recevez plus de notifications.

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal