Postępuję zgodnie z samouczkiem na https://angular.io i mam problem ze znalezieniem dokumentacji; specjalnie dla metod pipe
i tap
. Nie mogę znaleźć niczego na https://angular.io lub http://reactivex.io/rxjs/ .
Rozumiem, że pipe
i tap
czy obie metody Observable
importu z RxJS są prawidłowe? Co oni mają zrobić?
Czy te metody są częścią Angulara? Co robią te dwie metody?
Odpowiedzi:
Masz rację, w dokumentacji brakuje tych metod. Jednak kiedy wbił rxjs repozytorium znalazłem miłe komentarze dotyczące kranu (zbyt długo, aby wkleić tutaj) i rur operatorów:
W skrócie:
Rura : Służy do łączenia funkcjonalnych operatorów w łańcuch. Wcześniej moglibyśmy to zrobić
observable.filter().map().scan()
, ale ponieważ każdy operator RxJS jest samodzielną funkcją, a nie metodą Observable, musimypipe()
utworzyć łańcuch tych operatorów (patrz przykład powyżej).Stuknij : może wywołać efekty uboczne na obserwowanych danych, ale w żaden sposób nie modyfikuje strumienia. Dawniej nazywany
do()
. Możesz myśleć o tym tak, jakby obserwowalna była tablica w czasie, a następnietap()
byłaby odpowiednikiemArray.forEach()
.źródło
do
których nazwa została zmieniona natap
... Krótko mówiąc, to bałagan. github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.mdfilter
działa podobnieArray.filter
- zachowuje tylko wartości spełniające regułę (w tym przypadku podzielne przez 2);map
(znowu jakArray.map
) zmienia każdą wartość (w tym przypadku dodaje ją do siebie);scan
jest najciekawsze i oto fajne wyjaśnienie: learnrxjs.io/operators/transformation/scan.html