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

Explication détaillée de rxjs

php中世界最好的语言
Libérer: 2018-03-13 16:31:24
original
3240 Les gens l'ont consulté

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

rxjs (Reactive Extensions for JavaScript) est une extension réactive de Javascript. L'idée réactive est de convertir les données, les statuts, les événements, etc. qui changent au fil du temps en une séquence observable (. Séquence observable), puis s'abonne aux modifications apportées aux objets dans la séquence. Une fois celle-ci modifiée, diverses transformations et opérations pré-arrangées seront effectuées.

rxjs convient aux scénarios asynchrones et peut être utilisé pour optimiser les requêtes et les événements dans les interactions frontales.

Fonctionnalités rxjs

Unifiez les spécifications de la programmation asynchrone. Qu'il s'agisse de Promise, d'ajax ou d'événements, elles sont toutes encapsulées dans des séquences (Séquence observable). en observant la séquence des informations modifiées.

La couche métier front-end et la couche de présentation sont découplées. Par exemple, la couche de présentation n'a pas besoin de se soucier de la logique de traitement qui n'a rien à voir avec le DOM lorsqu'un événement spécifié est déclenché. Dans le même temps, la couche métier peut également assembler la relation entre plusieurs logiques asynchrones dans des opérations asynchrones sans l'exposer à la couche de présentation. La couche de présentation concerne : les modifications de données dans le fonctionnement asynchrone.

La couche commerciale de développement rxjs présente les caractéristiques d'une élasticité élevée, d'une stabilité élevée et de performances en temps réel élevées.

Concept d'instance rxjs

Observable : séquence de données observables.

Observateur : instance d'observateur, décide quand observer les données spécifiées.

Abonnement : observer le la séquence de données renvoie l'instance d'abonnement.

Opérateurs : méthodes de fonctionnement d'Observable, y compris la conversion des séquences de données, le filtrage, etc. Les paramètres acceptés par toutes les méthodes des opérateurs sont les valeurs de la dernière modification de données envoyée et la méthode. la valeur de retour est appelée pour émettre de nouvelles modifications de données.

Sujet : objet observé.

Planificateurs : contrôlent la simultanéité de la planification, c'est-à-dire que lorsque l'observable accepte la réponse de modification du sujet, la méthode de réponse peut être défini via le planificateur. Actuellement, la réponse intégrée peut être visualisée en appelant Object.keys(Rx.Subject).

Observable a quatre cycles de vie : création, souscription, exécution et destruction.

Créez un Obervable et renvoyez l'instance source de la séquence observée. Cette instance n'a pas la capacité d'envoyer des données. En revanche, l'instance d'objet d'observation créée via le nouveau Rx.Subject a la capacité d'envoyer la source de données.

Vous pouvez vous abonner à la méthode de réponse (méthode de rappel) lorsque la séquence émet de nouvelles modifications de données via l'instance source de la séquence.

L'action de réponse est en fait l'exécution de l'Observable.

L'instance source de séquence peut être détruite, et elle sera automatiquement détruite lorsqu'une erreur se produit dans la méthode d'abonnement.

La méthode catch de l'instance source de séquence peut capturer les erreurs qui se produisent dans la méthode d'abonnement, et l'instance source de séquence peut accepter la valeur de retour de la méthode catch en tant que nouvelle instance source de séquence.

Opérateurs rxjs

rxjs fournit de nombreux opérateurs pour créer des objets observables

importer Rx depuis 'rxjs';

créer

let observable = Rx.Observable
    .create((observer)=> {
        observer.next('hello');
        observer.next('world');
    });    
//订阅Observable    observable.subscribe((value)=> {    console.log(value);
});
Copier après la connexion

sortie : bonjour
monde

de

variable de valeur de conversion

let observable = Rx.Observable.of('hello', 'world');
observable.subscribe({    next: (value)=> {        console.log(value);
    },    complete: ()=> {        console.log('complete');
    },    error: (error)=> {        console.log(error);
    }
});
Copier après la connexion

sortie : bonjour
monde
terminé

de

Convertir la variable du tableau

let array = [1, 2, 3];let observable = Rx.Observable.from(array);
observable.subscribe({    next: (value)=> {        console.log(value);
    },    complete: ()=> {        console.log('complete');
    },    error: (error)=> {        console.log(error);
    }
});
Copier après la connexion

Sortie : 1

    2     3     complete
fromEvent
Copier après la connexion

Convertir la variable d'événement

Rx.Observable.fromEvent(document.querySelector('button'), 'click');
fromPromise
Copier après la connexion

Variable de conversion de promesse

let observable = Rx.Observable
.fromPromise(new Promise((resolve, reject) => {
    setTimeout(() => {
    resolve('hello world');
    },3000)
}));
observable.subscribe({    next: (value)=> {        console.log(value);
    },    complete: ()=> {        console.log('complete');
    },    error: (error)=> {        console.log(error);
    }
});
Copier après la connexion

Sortie : bonjour tout le monde
complète

vide

L'opérateur vide renvoie un observable vide. à l'objet et il renverra immédiatement des informations complètes.

jamais

L'opérateur never renverra un Observable infini Si vous vous abonnez à cet objet, rien ne se passera. C'est un objet Observable qui existe toujours mais ne fait rien. L'opérateur

intervalle

intervalle prend en charge un paramètre de type numérique, qui est utilisé pour représenter l'intervalle de temps.

let observable = Rx.Observable.interval(1000);
observable.subscribe({    next: (value)=> {        console.log(value);
    },    complete: ()=> {        console.log('complete');
    },    error: (error)=> {        console.log(error);
    }
});
Copier après la connexion

Sortie : 0

    1
     2
     ...
Copier après la connexion

Le code ci-dessus signifie que toutes les 1 secondes, une valeur croissante sera sortie et la valeur initiale commence à 0.

minuterie

L'opérateur de minuterie prend en charge deux paramètres. Le premier paramètre est utilisé pour définir le temps d'attente pour envoyer la première valeur. Le deuxième paramètre indique qu'après le premier envoi, le temps entre l'envoi. d'autres valeurs.

let observable = Rx.Observable.timer(1000, 5000);

observable.subscribe({    next: (value)=> {        console.log(value);
    },    complete: ()=> {        console.log('complete');
    },    error: (error)=> {        console.log(error);
    }
});
Copier après la connexion

Sortie : 0 //Après 1s
1 //Après 5s
2 //5 secondes plus tard
...

Pull vs Push

Pull et Push sont deux méthodes de communication différentes entre les producteurs et les consommateurs de données

Pull

Dans le système Pull, le consommateur de données décide quand obtenir les données du producteur de données, et le producteur lui-même ne réalise pas quand les données seront envoyées au consommateur.
Chaque fonction JavaScript est un système Pull. La fonction est le producteur de données. Le code qui appelle la fonction consomme les données en extrayant une seule valeur de retour.
Itérateur et générateur dans ES6 Generator est un autre système Pull. Le code qui appelle iterator.next() est un consommateur et peut en extraire plusieurs valeurs.

Pousser

Dans le système Push, le producteur de données décide quand envoyer les données au consommateur, et le consommateur ne se rendra pas compte qu'il va recevoir les données avant de les recevoir.
Promise est le système Push le plus courant. Une Promise (producteur de données) envoie un résolu (statut de réussite) ou un rejet (statut d'échec) pour exécuter un rappel (consommateur de données), mais elle est différente d'une fonction en ce sens : La promesse détermine quand les données sont transmises à cette fonction de rappel .

RxJS présente les Observables (objets observables), un nouveau système Push. Un objet observable est un producteur qui génère plusieurs valeurs lorsque de nouvelles données sont générées, elles seront activement transmises à l'Observer.

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 prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Animation SVG dans le développement front-end

TypeScript que vous devez connaître

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