Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée de l'utilisation de Rxjs

php中世界最好的语言
Libérer: 2018-03-12 15:46:00
original
2917 Les gens l'ont consulté

Cette fois, je vais vous apporter une explication détaillée de l'utilisation de Rxjs. Quelles sont les précautions lors de l'utilisation de Rxjs. Voici des cas pratiques, jetons un coup d'œil.

Lors de l'exécution d'un objet Observable , de zéro à une infinité de prochaines notifications sont envoyées. Si une notification d’erreur ou complète est envoyée une seule fois, aucune valeur ne sera envoyée par la suite.

L'objet observable adhère strictement à ce contrat, donc le code suivant n'enverra pas de prochaine notification contenant la valeur 4

var observable = Rx.Observable.create(function subscribe(observer) {
observer.next(1);
observer.next(2);
observer.next(3);
observer.complete();
observer.next(4); // Is not delivered because it would violate the contract});
Copier après la connexion

Un bon moyen est d'utiliser try/catch L'instruction s'enroule l'instruction de notification et enverra une notification d'erreur si une exception est interceptée.

var observable = Rx.Observable.create(function subscribe(observer) {try {
observer.next(1);
observer.next(2);
observer.next(3);
observer.complete();
} catch (err) {
observer.error(err); // delivers an error if it caught one}
});
Copier après la connexion

Désabonnement désabonnement()

Étant donné que l'exécution d'objets observables peut être infinie (continuellement ensuite), les observateurs veulent souvent le faire dans un temps limité L'exécution se termine dans, donc nous avons besoin d'une API pour annuler l'exécution.

var observable = Rx.Observable.from([10, 20, 30]);var souscription = observable.subscribe(x => console.log(x));// Plus tard:abonnement.unabonnement ();

Après votre abonnement, vous obtiendrez un objet Subscription, qui représente l'exécution en cours. N'ayez pas peur d'utiliser unsubscribe() pour terminer l'exécution.

observateur

Qu'est-ce qu'un observateur ? Les observateurs sont des consommateurs de données envoyées par les objets observables. En termes simples, les observateurs sont un ensemble de fonctions de rappel , qui correspondent respectivement à un type de notification envoyée par l'objet observable : next, error et complete. Voici un exemple d'objet observateur typique :

var observer={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')
}
Copier après la connexion

Un observateur est simplement un objet composé d'un tableau de trois fonctions de rappel Chaque fonction de rappel correspond à la notification du. type d’objet observable.

Abonnement

Les objets d'abonnement peuvent également être placés ensemble, donc appeler unsubscribe() sur un objet d'abonnement peut annuler plusieurs abonnements. La méthode est la suivante : "ajouter" un abonnement à un autre abonnement.

var observable1 = Rx.Observable.interval(400);var observable2 = Rx.Observable.interval(300);var subscription = observable1.subscribe(x => console.log('first: ' + x));var childSubscription = observable2.subscribe(x => console.log('second: ' + x));
subscription.add(childSubscription);
setTimeout(() => {// Unsubscribes BOTH subscription and childSubscriptionsubscription.unsubscribe();
}, 1000);
Copier après la connexion

Après exécution, nous pouvons obtenir dans la console :

second: 0
first: 0
second: 1
first: 1
second: 2
Copier après la connexion

L'abonnement a également une méthode Remove(otherSubscription), qui est utilisée pour annuler l'abonnement ajouté par add .

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez faire attention au site Web php chinois Autres articles liés !

Lecture connexe :

Explication détaillée de l'utilisation de la bibliothèque d'outils js-xlsx xlsxUtils

Intégration des fonctions communes quotidiennes de JS

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:php.cn
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