Heim  >  Artikel  >  Web-Frontend  >  Detaillierte Erläuterung der Verwendung von Rxjs

Detaillierte Erläuterung der Verwendung von Rxjs

php中世界最好的语言
php中世界最好的语言Original
2018-03-12 15:46:002909Durchsuche

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

Während der Ausführung eines beobachtbaren

-Objekts werden null bis unendlich nächste Benachrichtigungen gesendet. Wenn eine Fehler- oder Vollständig-Benachrichtigung einmal gesendet wird, wird danach kein Wert gesendet.

Das beobachtbare Objekt hält sich strikt an diesen Vertrag, daher sendet der folgende Code keine nächste Benachrichtigung mit dem Wert 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});
Eine gute Möglichkeit ist die Verwendung von try/catch. Die Anweisung wird umbrochen die Benachrichtigungsanweisung und sendet eine Fehlerbenachrichtigung, wenn eine Ausnahme abgefangen wird.

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}
});
Unsubscribe unsubscribe()

Da die Ausführung beobachtbarer Objekte unendlich sein kann (kontinuierlich weiter), möchten Beobachter dies oft in einer begrenzten Zeit tun. Die Ausführung wird also innerhalb von begrenzter Zeit beendet Wir benötigen eine API, um die Ausführung abzubrechen.

var observable = Rx.Observable.from([10, 20, 30]);var subscription = observable.subscribe(x => console.log(x));// Später:subscription.unsubscribe ();


Nachdem Sie sich abonniert haben, erhalten Sie ein Subscription-Objekt, das die laufende Ausführung darstellt. Scheuen Sie sich nicht, unsubscribe() zu verwenden, um die Ausführung zu beenden.

Beobachter

Was ist ein Beobachter? Beobachter sind Verbraucher von Daten, die von beobachtbaren Objekten gesendet werden. Einfach ausgedrückt sind Beobachter eine Reihe von

Rückruffunktionen , die jeweils einem vom beobachtbaren Objekt gesendeten Benachrichtigungstyp entsprechen: „next“, „error“ und „complete“. Das Folgende ist ein Beispiel für ein typisches Beobachterobjekt:

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')
}
Ein Beobachter ist nur ein Objekt, das aus einem Array von drei Rückruffunktionen besteht

Jede Rückruffunktion entspricht der Benachrichtigung des beobachtbarer Objekttyp.

Abonnement

Abonnementobjekte können auch zusammen platziert werden, sodass der Aufruf von unsubscribe() für ein Abonnementobjekt mehrere Abonnements kündigen kann. Die Methode lautet: „Hinzufügen“ eines Abonnements zu einem anderen 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);
Nach der Ausführung können wir in die Konsole gelangen:

second: 0
first: 0
second: 1
first: 1
second: 2
Das Abonnement verfügt auch über eine Methode „remove(otherSubscription)“, mit der das durch „add“ hinzugefügte Abonnement storniert werden kann .

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

Andere verwandte Artikel!

Verwandte Lektüre:

Detaillierte Erläuterung der Verwendung der js-xlsx-Toolbibliothek xlsxUtils

Integration täglicher gemeinsamer Funktionen von JS

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von Rxjs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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