Angular eğitiminde boru ve kılavuz yöntemleri nelerdir? [kapalı]


130

Https://angular.io adresindeki eğiticiyi takip ediyorum ve belgeleri bulmakta sorun yaşıyorum; özellikle yöntemler için pipeve tap. Https://angular.io veya http://reactivex.io/rxjs/ üzerinde hiçbir şey bulamıyorum .

Benim anlayış olduğunu pipeve tapher iki yöntem vardır ObservableRxJS ithal ediliyor, doğru mu? onların ne yapması gerekiyor?

Bu yöntemler Angular'ın parçası mı? Bu iki yöntem ne işe yarar?


58
Kullanıcılar doğru sorular sorduğunda, uygun bir cevap aldığında ve yine de modlar için OP'nin sorduğu şeyden habersiz: D - neden bu "konu dışı"?
Paul Strupeikis

Yanıtlar:


109

Haklısınız, dokümantasyon bu yöntemlerden yoksundur. Ancak rxjs deposuna girdiğimde, dokunma (buraya yapıştırmak için çok uzun) ve boru operatörleri hakkında güzel yorumlar buldum :

  /**
   * Used to stitch together functional operators into a chain.
   * @method pipe
   * @return {Observable} the Observable result of all of the operators having
   * been called in the order they were passed in.
   *
   * @example
   *
   * import { map, filter, scan } from 'rxjs/operators';
   *
   * Rx.Observable.interval(1000)
   *   .pipe(
   *     filter(x => x % 2 === 0),
   *     map(x => x + x),
   *     scan((acc, x) => acc + x)
   *   )
   *   .subscribe(x => console.log(x))
   */

Kısaca:

Boru : İşlevsel operatörleri bir zincir halinde birleştirmek için kullanılır. Bunu yapmadan önce observable.filter().map().scan(), ancak her RxJS operatörü bir Observable metodu yerine bağımsız bir fonksiyon olduğundan pipe(), bu operatörlerden bir zincir oluşturmamız gerekir (yukarıdaki örneğe bakın).

Dokun : Gözlemlenen verilerle yan etkiler gerçekleştirebilir, ancak akışı hiçbir şekilde değiştirmez . Eskiden aradı do(). Zamanla gözlemlenebilir bir dizimiş gibi düşünebilirsiniz, o zaman tap()bir eşdeğer olacaktır Array.forEach().


4
Cevap ve bağlantılar için teşekkür ederim. Sorunumun bir kısmı, Angular'da yeniyim ve hangi yöntemlerin temel JavaScript'in veya Node.js'nin veya RxJS'nin veya Angular'ın parçası olduğundan emin değilim. Cevabınız bunu netleştirmeme yardımcı oldu. Teşekkür ederim.
Ben Rubin

3
@BenRubin Araçları öğrenmeye başlamadan önce yerel JS'yi doğru şekilde öğrenerek başlamanızı tavsiye ederim. Araçları ve gerçekte ne yaptığını anlamayı (ve hangi parçaların alete göre yerel olduğunu bilmeyi) çok daha kolay hale getirecek.
Magnus Eriksson

21
5.5'ten ve değiştirilebilen (bir zamanlar izin verilebilir) operatörlerin tanıtılmasından bu yana, doşu şekilde yeniden adlandırıldı tap... Kısacası, bu bir karmaşa. github.com/ReactiveX/rxjs/blob/master/doc/pipeable-operators.md
Luca

3
filteraynı şekilde çalışır Array.filter- yalnızca kuralı karşılayan değerleri tutar (bu durumda 2'ye bölünebilir); map(yine gibi Array.map) her değeri değiştirir (bu durumda kendisine ekler); scanen ilginç ve işte güzel bir açıklama: learnrxjs.io/operators/transformation/scan.html
Daniel Kucal

1
tarama
azalmış
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.