RxJS - Toán tử
Các toán tử là một phần quan trọng của RxJS. Toán tử là một hàm thuần túy lấy đầu vào có thể quan sát được và đầu ra cũng là một hàm có thể quan sát được.
Làm việc với các nhà điều hành
Toán tử là một hàm thuần túy lấy đầu vào có thể quan sát được và đầu ra cũng là một hàm có thể quan sát được.
Để làm việc với các toán tử, chúng ta cần một phương thức pipe ().
Ví dụ về cách sử dụng pipe ()
let obs = of(1,2,3); // an observable
obs.pipe(
operator1(),
operator2(),
operator3(),
operator3(),
)
Trong ví dụ trên, chúng tôi đã tạo ra một of()Phương thức nhận các giá trị 1, 2 và 3. Bây giờ trên phương thức quan sát được này, bạn có thể thực hiện các thao tác khác nhau bằng cách sử dụng bất kỳ số lượng toán tử nào sử dụng phương thức pipe () như hình trên. Việc thực thi các toán tử sẽ diễn ra tuần tự trên những gì có thể quan sát được.
Dưới đây là một ví dụ hoạt động -
import { of } from 'rxjs';
import { map, reduce, filter } from 'rxjs/operators';
let test1 = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
let case1 = test1.pipe(
filter(x => x % 2 === 0),
reduce((acc, one) => acc + one, 0)
)
case1.subscribe(x => console.log(x));
Đầu ra
30
Trong ví dụ trên, chúng tôi đã sử dụng toán tử bộ lọc, lọc các số chẵn và tiếp theo chúng tôi đã sử dụng reduce() toán tử sẽ thêm các giá trị chẵn và đưa ra kết quả khi được đăng ký.
Đây là danh sách các Bảng quan sát mà chúng ta sẽ thảo luận.
- Creation
- Mathematical
- Join
- Transformation
- Filtering
- Utility
- Conditional
- Multicasting
- Xử lý lỗi
Nhà điều hành sáng tạo
Sau đây là các toán tử mà chúng ta sẽ thảo luận trong danh mục Toán tử tạo:
Sr.No | Nhà điều hành & Mô tả |
---|---|
1 | ajax Toán tử này sẽ thực hiện một yêu cầu ajax cho URL đã cho. |
2 | từ Toán tử này sẽ tạo một đối tượng có thể quan sát được từ một mảng, một đối tượng giống mảng, một lời hứa, một đối tượng có thể lặp lại hoặc một đối tượng giống như có thể quan sát được. |
3 | fromEvent Toán tử này sẽ đưa ra kết quả đầu ra dưới dạng có thể quan sát được, được sử dụng trên các phần tử phát ra sự kiện, ví dụ: các nút, nhấp chuột, v.v. |
4 | fromEventPattern Toán tử này sẽ tạo một hàm quan sát được từ hàm đầu vào được sử dụng để đăng ký các trình xử lý sự kiện. |
5 | khoảng thời gian Toán tử này sẽ tạo một Có thể quan sát cho mọi thời điểm trong khoảng thời gian nhất định .. |
6 | của Toán tử này sẽ nhận các đối số được truyền vào và chuyển chúng thành có thể quan sát được. |
7 | phạm vi Toán tử này sẽ tạo một Observable sẽ cung cấp cho bạn một chuỗi số dựa trên phạm vi được cung cấp. |
số 8 | némError Toán tử này sẽ tạo một quan sát được sẽ thông báo lỗi. |
9 | hẹn giờ Nhà điều hành này sẽ tạo ra một giá trị có thể quan sát được sẽ phát ra giá trị sau thời gian chờ và giá trị sẽ tiếp tục tăng sau mỗi cuộc gọi. |
10 | iif Nhà điều hành này sẽ quyết định Observable sẽ được đăng ký. |
Toán tử toán học
Sau đây là các toán tử mà chúng ta sẽ thảo luận trong danh mục Toán tử:
Sr.No | Nhà điều hành & Mô tả |
---|---|
1 | Đếm Toán tử count () nhận một giá trị có thể quan sát được và chuyển đổi nó thành một toán tử có thể quan sát được sẽ cho một giá trị duy nhất |
2 | Max Phương thức Max sẽ nhận một giá trị có thể quan sát được với tất cả các giá trị và trả về một giá trị có thể quan sát được với giá trị lớn nhất |
3 | Min Phương thức Min sẽ nhận vào một giá trị có thể quan sát được và trả về một giá trị có thể quan sát được với giá trị min. |
4 | Giảm Trong toán tử giảm, hàm tích lũy được sử dụng trên đầu vào có thể quan sát được và hàm tích lũy sẽ trả về giá trị tích lũy ở dạng có thể quan sát, với một giá trị gốc tùy chọn được chuyển đến hàm tích lũy. Hàm Reduce () sẽ nhận 2 đối số, một hàm tích lũy và giá trị hạt giống thứ hai. |
Tham gia nhà điều hành
Sau đây là các toán tử mà chúng ta sẽ thảo luận trong danh mục toán tử Tham gia.
Sr.No | Nhà điều hành & Mô tả |
---|---|
1 | kết hợp Toán tử này sẽ tuần tự phát ra Observable được đưa ra làm đầu vào và tiến hành tiếp theo. |
2 | forkJoin Toán tử này sẽ được lấy trong một mảng hoặc đối tượng dict làm đầu vào và sẽ đợi đối tượng có thể quan sát hoàn thành và trả về các giá trị cuối cùng được phát ra từ đối tượng có thể quan sát đã cho. |
3 | hợp nhất Toán tử này sẽ nhận đầu vào có thể quan sát được và sẽ phát ra tất cả các giá trị từ đầu ra có thể quan sát và phát ra một đầu ra duy nhất có thể quan sát được. |
4 | cuộc đua Nó sẽ trả lại một bản sao có thể quan sát được sẽ là bản sao phản chiếu của nguồn đầu tiên có thể quan sát được. |
Nhà điều hành chuyển đổi
Sau đây là các toán tử mà chúng ta sẽ thảo luận trong danh mục Toán tử chuyển đổi.
Sr.No | Nhà điều hành & Mô tả |
---|---|
1 | đệm Bộ đệm hoạt động trên một đối số có thể quan sát được và nhận vào như một đối số có thể quan sát được. Nó sẽ bắt đầu lưu vào bộ đệm các giá trị được phát ra trên bản gốc có thể quan sát được trong một mảng và sẽ phát ra giống như vậy khi phát ra đối số có thể quan sát được. Khi các đối số có thể quan sát được phát ra, bộ đệm được đặt lại và bắt đầu lưu vào bộ đệm lại trên nguyên bản cho đến khi đầu vào có thể quan sát được phát ra và kịch bản tương tự lặp lại. |
2 | bufferCount Trong trường hợp toán tử buffercount (), nó sẽ thu thập các giá trị từ có thể quan sát được mà nó được gọi và phát ra giống nhau khi kích thước bộ đệm được cung cấp cho buffercount khớp. |
3 | bufferTime Điều này tương tự với bufferCount, vì vậy ở đây, nó sẽ thu thập các giá trị từ có thể quan sát được mà nó được gọi và phát ra bufferTimeSpan là xong. Nó có trong 1 đối số tức là bufferTimeSpan . |
4 | bufferToggle Trong trường hợp của bufferToggle (), nó cần 2 đối số là openSelector. Các đối số mở có thể đăng ký hoặc một lời hứa khởi động bộ đệm và đối số thứ hai closeSelector lại có thể đăng ký hoặc hứa một chỉ báo để đóng bộ đệm và phát ra các giá trị được thu thập. |
5 | đệmKhi Toán tử này sẽ cung cấp các giá trị ở dạng mảng, nó nhận vào một đối số dưới dạng một hàm sẽ quyết định khi nào đóng, phát và đặt lại bộ đệm. |
6 | mở rộng Toán tử mở rộng nhận vào một hàm làm đối số được áp dụng trên nguồn có thể quan sát được một cách đệ quy và cả trên đầu ra có thể quan sát được. Giá trị cuối cùng là giá trị có thể quan sát được. |
7 | groupBy Trong toán tử groupBy, đầu ra được nhóm lại dựa trên một điều kiện cụ thể và các mục nhóm này được phát ra dưới dạng GroupedObservable. |
số 8 | bản đồ Trong trường hợp toán tử bản đồ, một hàm dự án được áp dụng trên mỗi giá trị trên nguồn có thể quan sát được và cùng một đầu ra được phát ra dưới dạng có thể quan sát được. |
9 | Bản đồ đến Một giá trị không đổi được đưa ra dưới dạng đầu ra cùng với Observable mỗi khi nguồn Observable phát ra một giá trị. |
10 | mergeMap Trong trường hợp toán tử mergeMap, một hàm dự án được áp dụng trên mỗi giá trị nguồn và đầu ra của nó được hợp nhất với đầu ra Observable. |
11 | switchMap Trong trường hợp toán tử switchMap, một chức năng dự án được áp dụng trên mỗi giá trị nguồn và đầu ra của nó được hợp nhất với đầu ra có thể quan sát được và giá trị được đưa ra là có thể quan sát được dự kiến gần đây nhất. |
12 | cửa sổ Nó nhận một biên giới cửa sổ đối số là một đối số có thể quan sát được và trả lại một biên giới quan sát được lồng nhau bất cứ khi nào các biên giới cửa sổ nhất định phát ra |
Toán tử lọc
Sau đây là các toán tử mà chúng ta sẽ thảo luận trong danh mục toán tử lọc.
Sr.No | Nhà điều hành & Mô tả |
---|---|
1 | sự suy nhược Một giá trị được phát ra từ nguồn Có thể quan sát được sau một thời gian và phát xạ được xác định bởi một đầu vào khác được cho là Có thể quan sát hoặc lời hứa. |
2 | giảm thời gian Nó sẽ phát ra giá trị từ nguồn có thể quan sát được chỉ sau khi thời gian hoàn tất. |
3 | khác biệt Toán tử này sẽ cung cấp tất cả các giá trị từ nguồn có thể quan sát được khác biệt khi so sánh với giá trị trước đó. |
4 | elementAt Toán tử này sẽ cung cấp một giá trị duy nhất từ nguồn có thể quan sát được dựa trên chỉ số đã cho. |
5 | bộ lọc Toán tử này sẽ lọc các giá trị từ nguồn có thể quan sát được dựa trên chức năng vị từ đã cho. |
6 | Đầu tiên Toán tử này sẽ cung cấp giá trị đầu tiên được phát ra bởi nguồn Observable. |
7 | Cuối cùng Toán tử này sẽ cung cấp giá trị cuối cùng được phát ra bởi nguồn Observable. |
số 8 | bỏ qua Toán tử này sẽ bỏ qua tất cả các giá trị từ nguồn Observable và chỉ thực hiện các lệnh gọi để hoàn thành hoặc các hàm gọi lại bị lỗi. |
9 | mẫu vật Toán tử này sẽ cung cấp giá trị gần đây nhất từ nguồn có thể quan sát được và kết quả đầu ra sẽ phụ thuộc vào đối số được truyền cho nó phát ra. |
10 | nhảy Toán tử này sẽ trả lại một giá trị có thể quan sát được sẽ bỏ qua lần xuất hiện đầu tiên của các mục đếm được lấy làm đầu vào. |
11 | ga Toán tử này sẽ xuất ra cũng như bỏ qua các giá trị từ nguồn có thể quan sát được trong thời gian được xác định bởi hàm đầu vào được lấy làm đối số và quá trình tương tự sẽ được lặp lại. |
Các nhà khai thác tiện ích
Sau đây là các toán tử mà chúng ta sẽ thảo luận trong danh mục toán tử tiện ích.
Sr.No | Nhà điều hành & Mô tả |
---|---|
1 | gõ nhẹ Toán tử này sẽ có đầu ra, giống như nguồn có thể quan sát được, và có thể được sử dụng để ghi các giá trị cho người dùng từ có thể quan sát được. Giá trị chính, lỗi nếu có hoặc nếu nhiệm vụ đã hoàn thành. |
2 | sự chậm trễ Toán tử này trì hoãn các giá trị phát ra từ nguồn có thể quan sát được dựa trên thời gian chờ đã cho. |
3 | trì hoãn khi nào Toán tử này trì hoãn các giá trị phát ra từ nguồn có thể quan sát được dựa trên thời gian chờ từ nguồn có thể quan sát khác được lấy làm đầu vào. |
4 | quan sát Toán tử này dựa trên bộ lập lịch đầu vào sẽ xem lại các thông báo từ nguồn có thể quan sát được. |
5 | subscribeOn Toán tử này giúp đăng ký không đồng bộ với nguồn có thể quan sát được dựa trên bộ lập lịch được lấy làm đầu vào. |
6 | Khoảng thời gian Toán tử này sẽ trả về một đối tượng chứa giá trị hiện tại và thời gian trôi qua giữa giá trị hiện tại và giá trị trước đó được tính bằng cách sử dụng đầu vào của bộ lập lịch. |
7 | dấu thời gian Trả về dấu thời gian cùng với giá trị được phát ra từ nguồn Observable cho biết thời gian giá trị được phát ra. |
số 8 | hết giờ Toán tử này sẽ đưa ra lỗi nếu nguồn Observable không phát ra giá trị sau thời gian chờ đã cho. |
9 | toArray Tích lũy tất cả giá trị nguồn từ Observable và xuất chúng dưới dạng mảng khi nguồn hoàn thành. |
Các nhà khai thác có điều kiện
Sau đây là các toán tử mà chúng ta sẽ thảo luận trong danh mục toán tử điều kiện.
Sr.No | Nhà điều hành & Mô tả |
---|---|
1 | defaultIfEmpty Toán tử này sẽ trả về giá trị mặc định nếu nguồn có thể quan sát được trống. |
2 | mỗi Nó sẽ trả về một Observable dựa trên hàm đầu vào thỏa mãn điều kiện trên mỗi giá trị trên nguồn Observable. |
3 | tìm thấy Điều này sẽ trả về giá trị có thể quan sát được khi giá trị đầu tiên của nguồn có thể quan sát thỏa mãn điều kiện cho hàm vị từ được lấy làm đầu vào. |
4 | findIndex Toán tử này dựa trên bộ lập lịch đầu vào sẽ xem lại các thông báo từ nguồn có thể quan sát được. |
5 | isEmpty Toán tử này sẽ cho đầu ra là true nếu đầu vào có thể quan sát được gọi lại hoàn toàn mà không tạo ra bất kỳ giá trị nào và sai nếu đầu vào có thể quan sát phát ra bất kỳ giá trị nào. |
Các nhà khai thác nhiều lớp
Sau đây là các toán tử mà chúng ta sẽ thảo luận trong danh mục toán tử đa hướng ..
Sr.No | Nhà điều hành & Mô tả |
---|---|
1 | đa hướng Một nhà khai thác multicast chia sẻ gói đăng ký duy nhất đã tạo với những người đăng ký khác. Các tham số mà multicast nhận vào, là một chủ đề hoặc một phương thức gốc trả về một phương thức ConnectableObservable có kết nối (). Để đăng ký, phương thức connect () phải được gọi. |
2 | công bố Toán tử này trả lại ConnectableObservable và cần sử dụng phương thức connect () để đăng ký các có thể quan sát. |
3 | PublishingBehavior PublishingBehaviour sử dụng BehaviourSubject và trả về ConnectableObservable. Phương thức connect () phải được sử dụng để đăng ký vào phương thức quan sát được tạo. |
4 | xuất bản PublishingBehaviour sử dụng AsyncSubject và trả lại ConnectableObservable. Phương thức connect () phải được sử dụng để đăng ký vào phương thức quan sát được tạo. |
5 | xuất bản PublishingReplay sử dụng chủ đề hành vi trong đó nó có thể đệm các giá trị và phát lại các giá trị tương tự cho người đăng ký mới và trả về ConnectableObservable. Phương thức connect () phải được sử dụng để đăng ký vào phương thức quan sát được tạo. |
6 | chia sẻ Nó là một bí danh cho toán tử mutlicast () với sự khác biệt duy nhất là bạn không phải gọi phương thức connect () theo cách thủ công để bắt đầu đăng ký. |
Các nhà điều hành xử lý lỗi
Sau đây là các toán tử mà chúng ta sẽ thảo luận trong danh mục toán tử xử lý lỗi.
Sr.No | Nhà điều hành & Mô tả |
---|---|
1 | catchError Toán tử này xử lý việc bắt lỗi trên nguồn Observable bằng cách trả về một Observable mới hoặc một lỗi. |
2 | thử lại Toán tử này sẽ đảm nhận việc thử lại trên nguồn Observable nếu có lỗi và việc thử lại sẽ được thực hiện dựa trên số lượng đầu vào đã cho. |