Два очень разных типа угловых труб - Pipes и RxJS - Pipes
Угловая труба
Канал принимает данные в качестве входных и преобразует их в желаемый результат. На этой странице вы будете использовать каналы для преобразования свойства дня рождения компонента в удобную для человека дату.
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 - Труба
Наблюдаемые операторы состоят из конвейерного метода, известного как конвейерные операторы. Вот пример.
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));
Вывод в консоли будет следующим:
0
6
12
18
Для любой переменной, содержащей наблюдаемое, мы можем использовать метод .pipe () для передачи одной или нескольких операторных функций, которые могут работать и преобразовывать каждый элемент в наблюдаемой коллекции.
Итак, в этом примере каждое число в диапазоне от 0 до 10 умножается на 2. Затем функция фильтра фильтрует результат только до нечетных чисел.