Saya mengikuti tutorial di https://angular.io , dan saya kesulitan menemukan dokumentasi; khusus untuk metode pipe
dan tap
. Saya tidak dapat menemukan apa pun di https://angular.io atau http://reactivex.io/rxjs/ .
Pemahaman saya adalah itu pipe
dan tap
keduanya metode Observable
, yang diimpor dari RxJS, benar? apa yang seharusnya mereka lakukan?
Apakah metode ini bagian dari Angular? Apa yang dilakukan kedua metode ini?
Jawaban:
Anda benar, dokumentasi tidak memiliki metode tersebut. Namun ketika saya menggali ke dalam repositori rxjs, saya menemukan komentar bagus tentang tap (terlalu panjang untuk ditempel di sini) dan operator pipa :
Secara singkat:
Pipa : Digunakan untuk menjahit operator fungsional menjadi sebuah rantai. Sebelumnya kita bisa melakukannya
observable.filter().map().scan()
, tetapi karena setiap operator RxJS adalah fungsi mandiri daripada metode Observable, kita perlupipe()
membuat rantai operator tersebut (lihat contoh di atas).Ketuk : Dapat melakukan efek samping dengan data yang diamati tetapi tidak mengubah aliran dengan cara apa pun. Sebelumnya disebut
do()
. Anda dapat menganggapnya seolah-olah observable adalah array dari waktu ke waktu, makatap()
akan menjadi setara denganArray.forEach()
.sumber
do
telah diubah namanya menjaditap
... Singkatnya, ini berantakan. github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.mdfilter
bekerja sepertiArray.filter
- hanya menyimpan nilai yang memenuhi aturan (dalam hal ini habis dibagi 2);map
(sekali lagi sepertiArray.map
) mengubah setiap nilai (dalam hal ini menambahkannya ke nilai itu sendiri);scan
adalah yang paling menarik dan inilah penjelasan yang bagus: learnrxjs.io/operators/transformation/scan.html