Heim Web-Frontend js-Tutorial Detaillierte Erklärung von rxjs

Detaillierte Erklärung von rxjs

Mar 13, 2018 pm 04:31 PM
javascript rxjs 详解

Dieses Mal werde ich Ihnen ausführlich erklären, welche Vorsichtsmaßnahmen bei der Verwendung von rxjs zu beachten sind.

rxjs (Reaktive Erweiterungen für JavaScript) ist eine responsive Erweiterung von Javascript. Die responsive Idee besteht darin, Daten, Status, Ereignisse usw., die sich im Laufe der Zeit ändern, in eine beobachtbare Sequenz umzuwandeln. Observable Sequence) und abonniert dann die Änderungen an den Objekten in der Sequenz. Sobald sie sich ändert, werden verschiedene vorab vereinbarte Transformationen und Operationen ausgeführt.

rxjs eignet sich für asynchrone Szenarien und kann zur Optimierung von Anfragen und Ereignissen in Front-End-Interaktionen verwendet werden.

rxjs-Funktionen

Vereinheitlichen Sie die Spezifikationen der asynchronen Programmierung. Unabhängig davon, ob es sich um Promise, Ajax oder Ereignisse handelt, werden sie alle in Sequenzen (Observable Sequence) gekapselt es durch Beobachtung der geänderten Informationen.

Die Front-End-Geschäftsschicht und die Präsentationsschicht sind entkoppelt. Beispielsweise muss sich die Präsentationsschicht nicht um die Verarbeitungslogik kümmern, die nichts mit dem DOM zu tun hat, wenn ein bestimmtes Ereignis ausgelöst wird. Gleichzeitig kann die Geschäftsschicht auch die Beziehung zwischen mehreren asynchronen Logiken in asynchronen Vorgängen zusammenstellen, ohne sie der Präsentationsschicht zugänglich zu machen. Die Präsentationsschicht befasst sich mit: Datenänderungen im asynchronen Betrieb.

Die rxjs-Entwicklungsgeschäftsschicht zeichnet sich durch hohe Elastizität, hohe Stabilität und hohe Echtzeitleistung aus.

rxjs-Instanzkonzept

Beobachtbar: Beobachtbare Datensequenz.

Beobachter: Beobachterinstanz, entscheidet, wann die angegebenen Daten beobachtet werden sollen.

Abonnement: Beobachten der Datensequenz gibt die Abonnementinstanz zurück.Operatoren: Observable-Operationsmethoden, einschließlich Konvertieren von Datensequenzen, Filtern usw. Die von allen Operatormethoden akzeptierten Parameter sind die Werte der letzten gesendeten Datenänderung und die Methode Der Rückgabewert wird aufgerufen, um neue Datenänderungen auszugeben.

Subjekt: Beobachtetes Objekt.

Scheduler: Kontrollieren die Parallelität der Planung, das heißt, wenn das Observable die Änderungsantwort des Subjekts akzeptiert, kann die Antwortmethode sein Wird derzeit über den Scheduler festgelegt. Die Antwort kann durch Aufrufen von Object.keys (Rx.Subject) angezeigt werden.

Observable hat vier

Lebenszyklen

: Erstellung, Abonnement, Ausführung und Zerstörung. Erstellen Sie eine Obervable und geben Sie die beobachtete Sequenzquelleninstanz zurück. Im Gegensatz dazu kann die über new Rx.Subject erstellte Beobachtungsobjektinstanz die Datenquelle senden.

Sie können die Antwortmethode (Rückrufmethode) abonnieren, wenn die Sequenz neue Datenänderungen über die Sequenzquelleninstanz ausgibt.

Die Antwortaktion ist eigentlich die Ausführung des Observable.

Die Sequenzquelleninstanz kann zerstört werden und wird automatisch zerstört, wenn in der Abonnementmethode ein Fehler auftritt.

Die Catch-Methode der Sequenzquelleninstanz kann Fehler erfassen, die in der Abonnementmethode auftreten, und die Sequenzquelleninstanz kann den Rückgabewert der Catch-Methode als neue Sequenzquelleninstanz akzeptieren.

rxjs-Operatoren

rxjs bietet viele Operatoren zum Erstellen beobachtbarer Objekte

import Rx from 'rxjs';


create

Ausgabe: Hallo
let observable = Rx.Observable
    .create((observer)=> {
        observer.next('hello');
        observer.next('world');
    });    
//订阅Observable    observable.subscribe((value)=> {    console.log(value);
});
Nach dem Login kopieren
Welt



von

Konvertierungswertvariable

Ausgabe: Hallo
let observable = Rx.Observable.of('hello', 'world');
observable.subscribe({    next: (value)=> {        console.log(value);
    },    complete: ()=> {        console.log('complete');
    },    error: (error)=> {        console.log(error);
    }
});
Nach dem Login kopieren
Welt

abgeschlossen


von

Array-Variable konvertieren

Ausgabe: 1
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);
    }
});
Nach dem Login kopieren


Ereignisvariable konvertieren
    2     3     complete
fromEvent
Nach dem Login kopieren

Promise-Variable konvertieren
Rx.Observable.fromEvent(document.querySelector('button'), 'click');
fromPromise
Nach dem Login kopieren

Ausgabe: Hallo Welt
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);
    }
});
Nach dem Login kopieren
vollständig



leer

Der leere Operator gibt ein leeres Observable zurück zum Objekt und es werden sofort vollständige Informationen zurückgegeben.

Niemals

Der Never-Operator gibt ein unendliches Observable zurück. Wenn Sie dieses Objekt abonnieren, passiert nichts. Es ist ein Observable-Objekt, das immer existiert, aber nichts tut. Der

Intervall

Intervalloperator unterstützt einen Parameter vom

numerischen Typ

, der zur Darstellung des Zeitintervalls verwendet wird.

Ausgabe: 0
let observable = Rx.Observable.interval(1000);
observable.subscribe({    next: (value)=> {        console.log(value);
    },    complete: ()=> {        console.log('complete');
    },    error: (error)=> {        console.log(error);
    }
});
Nach dem Login kopieren


Der obige Code bedeutet, dass alle 1 Sekunden ein steigender Wert ausgegeben wird und der Anfangswert bei 0 beginnt.
    1
     2
     ...
Nach dem Login kopieren

Timer

Der Timer-Operator unterstützt zwei Parameter. Der erste Parameter wird verwendet, um die Wartezeit zum Senden des ersten Werts festzulegen. Der zweite Parameter gibt die Zeit zwischen dem Senden an andere Werte.

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


Ausgabe: 0 //Nach 1s
observable.subscribe({    next: (value)=> {        console.log(value);
    },    complete: ()=> {        console.log('complete');
    },    error: (error)=> {        console.log(error);
    }
});
Nach dem Login kopieren
1 //Nach 5s

2 //5s später
...


Pull vs Push

Pull und Push sind zwei verschiedene Kommunikationsmethoden zwischen Datenproduzenten und Datenkonsumenten

Pull

Im Pull-System entscheidet der Datenkonsument, wann er Daten vom Datenproduzenten erhält, und der Produzent selbst weiß nicht, wann die Daten an den Konsumenten gesendet werden.

Jede JavaScript-Funktion ist ein Pull-System. Die Funktion ist der Produzent von Daten. Der Code, der die Funktion aufruft, verbraucht die Daten, indem er einen einzelnen Rückgabewert abruft.

Iterator und Generator in ES6
Generator
ist ein weiteres Pull-System. Der Code, der iterator.next() aufruft, ist ein Verbraucher und kann mehrere Werte daraus ziehen. Drücken

Im Push-System entscheidet der Datenproduzent, wann er Daten an den Verbraucher sendet, und der Verbraucher erkennt nicht, dass er die Daten erhalten wird, bevor er die Daten erhält.
Promise ist das gebräuchlichste Push-System. Ein Promise (Datenproduzent) sendet einen gelösten (Erfolgsstatus) oder einen abgelehnten (Fehlerstatus) Rückruf (Datenkonsument), unterscheidet sich jedoch darin von einer Funktion: Promise bestimmt, wann Daten an diese Rückruffunktion übertragen werden.

RxJS führt Observables (beobachtbare Objekte) ein, ein neues Push-System. Ein beobachtbares Objekt ist ein Produzent, der mehrere Werte generiert. Wenn neue Daten generiert werden, werden diese aktiv an den Beobachter übertragen.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.

Empfohlene Lektüre:

SVG-Animation in der Front-End-Entwicklung

TypeScript, das Sie kennen müssen

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung von rxjs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1657
14
PHP-Tutorial
1257
29
C#-Tutorial
1231
24
Ausführliche Erklärung zur Erlangung von Administratorrechten in Win11 Ausführliche Erklärung zur Erlangung von Administratorrechten in Win11 Mar 08, 2024 pm 03:06 PM

Das Windows-Betriebssystem ist eines der beliebtesten Betriebssysteme der Welt und seine neue Version Win11 hat viel Aufmerksamkeit erregt. Im Win11-System ist die Erlangung von Administratorrechten ein wichtiger Vorgang. Mit Administratorrechten können Benutzer weitere Vorgänge und Einstellungen auf dem System durchführen. In diesem Artikel wird ausführlich beschrieben, wie Sie Administratorrechte im Win11-System erhalten und wie Sie Berechtigungen effektiv verwalten. Im Win11-System werden Administratorrechte in zwei Typen unterteilt: lokaler Administrator und Domänenadministrator. Ein lokaler Administrator verfügt über vollständige Administratorrechte für den lokalen Computer

Detaillierte Erläuterung der Divisionsoperation in Oracle SQL Detaillierte Erläuterung der Divisionsoperation in Oracle SQL Mar 10, 2024 am 09:51 AM

Detaillierte Erläuterung der Divisionsoperation in OracleSQL In OracleSQL ist die Divisionsoperation eine häufige und wichtige mathematische Operation, die zur Berechnung des Ergebnisses der Division zweier Zahlen verwendet wird. Division wird häufig in Datenbankabfragen verwendet. Daher ist das Verständnis der Divisionsoperation und ihrer Verwendung in OracleSQL eine der wesentlichen Fähigkeiten für Datenbankentwickler. In diesem Artikel werden die relevanten Kenntnisse über Divisionsoperationen in OracleSQL ausführlich erörtert und spezifische Codebeispiele als Referenz für die Leser bereitgestellt. 1. Divisionsoperation in OracleSQL

Detaillierte Erläuterung der Funktion system() des Linux-Systemaufrufs Detaillierte Erläuterung der Funktion system() des Linux-Systemaufrufs Feb 22, 2024 pm 08:21 PM

Detaillierte Erläuterung der Funktion system() des Linux-Systems Der Systemaufruf ist ein sehr wichtiger Teil des Linux-Betriebssystems. Er bietet eine Möglichkeit, mit dem Systemkernel zu interagieren. Unter diesen ist die Funktion system() eine der am häufigsten verwendeten Systemaufruffunktionen. In diesem Artikel wird die Verwendung der Funktion system() ausführlich vorgestellt und entsprechende Codebeispiele bereitgestellt. Grundlegende Konzepte von Systemaufrufen Systemaufrufe sind eine Möglichkeit für Benutzerprogramme, mit dem Betriebssystemkernel zu interagieren. Benutzerprogramme fordern das Betriebssystem an, indem sie Systemaufruffunktionen aufrufen

Detaillierte Erläuterung der Rolle und Verwendung des PHP-Modulo-Operators Detaillierte Erläuterung der Rolle und Verwendung des PHP-Modulo-Operators Mar 19, 2024 pm 04:33 PM

Der Modulo-Operator (%) in PHP wird verwendet, um den Rest der Division zweier Zahlen zu ermitteln. In diesem Artikel werden wir die Rolle und Verwendung des Modulo-Operators im Detail besprechen und spezifische Codebeispiele bereitstellen, um den Lesern ein besseres Verständnis zu erleichtern. 1. Die Rolle des Modulo-Operators Wenn wir in der Mathematik eine ganze Zahl durch eine andere ganze Zahl dividieren, erhalten wir einen Quotienten und einen Rest. Wenn wir beispielsweise 10 durch 3 dividieren, ist der Quotient 3 und der Rest ist 1. Um diesen Rest zu ermitteln, wird der Modulo-Operator verwendet. 2. Verwendung des Modulo-Operators In PHP verwenden Sie das %-Symbol, um den Modul darzustellen

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Detaillierte Erläuterung des Linux-Befehls „curl'. Detaillierte Erläuterung des Linux-Befehls „curl'. Feb 21, 2024 pm 10:33 PM

Detaillierte Erläuterung des Linux-Befehls „curl“ Zusammenfassung: Curl ist ein leistungsstarkes Befehlszeilentool für die Datenkommunikation mit dem Server. In diesem Artikel wird die grundlegende Verwendung des Curl-Befehls vorgestellt und tatsächliche Codebeispiele bereitgestellt, um den Lesern zu helfen, den Befehl besser zu verstehen und anzuwenden. 1. Was ist Locken? Curl ist ein Befehlszeilentool zum Senden und Empfangen verschiedener Netzwerkanfragen. Es unterstützt mehrere Protokolle wie HTTP, FTP, TELNET usw. und bietet umfangreiche Funktionen wie Datei-Upload, Datei-Download, Datenübertragung und Proxy

Erfahren Sie mehr über Promise.resolve() Erfahren Sie mehr über Promise.resolve() Feb 18, 2024 pm 07:13 PM

Eine detaillierte Erklärung von Promise.resolve() erfordert spezifische Codebeispiele. Promise ist ein Mechanismus in JavaScript zur Verarbeitung asynchroner Vorgänge. In der tatsächlichen Entwicklung ist es häufig erforderlich, einige asynchrone Aufgaben zu verarbeiten, die nacheinander ausgeführt werden müssen, und die Methode Promise.resolve () wird verwendet, um ein erfülltes Promise-Objekt zurückzugeben. Promise.resolve() ist eine statische Methode der Promise-Klasse, die a akzeptiert

Detaillierte Erläuterung der Numpy-Versionsabfragemethode Detaillierte Erläuterung der Numpy-Versionsabfragemethode Jan 19, 2024 am 08:20 AM

Numpy ist eine Python-Bibliothek für wissenschaftliches Rechnen, die eine Fülle von Array-Operationsfunktionen und -Tools bietet. Wenn Sie die Numpy-Version aktualisieren, müssen Sie die aktuelle Version abfragen, um die Kompatibilität sicherzustellen. In diesem Artikel wird die Methode der Numpy-Versionsabfrage ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt. Methode 1: Verwenden Sie Python-Code, um die Numpy-Version abzufragen. Sie können die Numpy-Version einfach mit Python-Code abfragen. Das Folgende ist die Implementierungsmethode und der Beispielcode: importnumpyasnpprint(np

See all articles