Hai loại ống Angular rất khác nhau - Pipes và RxJS - Pipes
Angular-Pipe
Một đường ống nhận dữ liệu làm đầu vào và biến đổi nó thành đầu ra mong muốn. Trong trang này, bạn sẽ sử dụng các đường ống để chuyển thuộc tính ngày sinh của một thành phần thành một ngày thân thiện với con người.
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 - Ống
Các toán tử có thể quan sát được tạo ra bằng cách sử dụng một phương pháp ống được gọi là các toán tử có thể nhìn thấy. Đây là một ví dụ.
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));
Đầu ra cho điều này trong bảng điều khiển sẽ như sau:
0
6
12
18
Đối với bất kỳ biến nào chứa một biến có thể quan sát được, chúng ta có thể sử dụng phương thức .pipe () để chuyển một hoặc nhiều hàm toán tử có thể hoạt động và biến đổi từng mục trong tập hợp có thể quan sát.
Vì vậy, ví dụ này lấy mỗi số trong phạm vi từ 0 đến 10 và nhân nó với 2. Sau đó, chức năng lọc để lọc kết quả xuống chỉ còn các số lẻ.