Zwei sehr unterschiedliche Arten von Rohren Angular - Pipes und RxJS - Pipes
Winkelrohr
Eine Pipe nimmt Daten als Eingabe auf und wandelt sie in eine gewünschte Ausgabe um. Auf dieser Seite verwenden Sie Pipes, um die Geburtstagseigenschaft einer Komponente in ein menschenfreundliches Datum umzuwandeln.
import { Component } from '@angular/core';
@Component({
selector: 'app-hero-birthday',
template: `<p>The hero's birthday is {{ birthday | date }}</p>`
})
export class HeroBirthdayComponent {
birthday = new Date(1988, 3, 15); // April 15, 1988
}
RxJS - Rohr
Beobachtbare Operatoren werden unter Verwendung einer Rohrleitungsmethode zusammengesetzt, die als Rohrleitungsoperatoren bekannt ist. Hier ist ein Beispiel.
import {Observable, range} from 'rxjs';
import {map, filter} from 'rxjs/operators';
const source$: Observable<number> = range(0, 10);
source$.pipe(
map(x => x * 2),
filter(x => x % 3 === 0)
).subscribe(x => console.log(x));
Die Ausgabe hierfür in der Konsole wäre die folgende:
0
6
12
18
Für jede Variable, die eine Observable enthält, können wir die .pipe () -Methode verwenden, um eine oder mehrere Operatorfunktionen zu übergeben, mit denen jedes Element in der Observable-Sammlung bearbeitet und transformiert werden kann.
In diesem Beispiel wird jede Zahl im Bereich von 0 bis 10 genommen und mit 2 multipliziert. Anschließend filtert die Filterfunktion das Ergebnis nur auf die ungeraden Zahlen herunter.