Ich folge dem Tutorial unter https://angular.io und habe Probleme, Dokumentation zu finden. speziell für die Methoden pipe
und tap
. Ich kann auf https://angular.io oder http://reactivex.io/rxjs/ nichts finden .
Mein Verständnis ist das pipe
und tap
sind beide Methoden von Observable
, die aus RxJS importiert werden, richtig? Was sollen sie tun?
Sind diese Methoden Teil von Angular? Was machen diese beiden Methoden?
Antworten:
Sie haben Recht, in der Dokumentation fehlen diese Methoden. Als ich mich jedoch in das Repository von rxjs eingegraben habe, habe ich nette Kommentare zu tap (zu lang zum Einfügen hier) und Pipe- Operatoren gefunden:
In Kürze:
Rohr : Zum Zusammenfügen von Funktionsoperatoren zu einer Kette. Bevor wir dies tun konnten
observable.filter().map().scan()
, müssen wirpipe()
eine Kette dieser Operatoren erstellen, da jeder RxJS-Operator eine eigenständige Funktion und keine Observable-Methode ist (siehe Beispiel oben).Tippen : Kann mit beobachteten Daten Nebenwirkungen verursachen, ändert den Stream jedoch in keiner Weise. Früher angerufen
do()
. Sie können sich vorstellen, dass beobachtbar ein Array im Laufe der Zeit wäre, danntap()
wäre es ein Äquivalent zuArray.forEach()
.quelle
do
umbenannt intap
... Kurz gesagt, es ist ein Chaos. github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.mdfilter
funktioniert genauso wieArray.filter
- hält nur Werte, die die Regel erfüllen (in diesem Fall durch 2 teilbar);map
(wieder wieArray.map
) ändert jeden Wert (in diesem Fall fügt er sich selbst hinzu);scan
ist am interessantesten und hier ist eine schöne Erklärung: learnrxjs.io/operators/transformation/scan.html