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});
Nach dem Login kopieren
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}
});
Nach dem Login kopieren
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')
}
Nach dem Login kopieren
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 dem Login kopieren
Nach der Ausführung können wir in die Konsole gelangen:
second: 0
first: 0
second: 1
first: 1
second: 2
Nach dem Login kopieren
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!