RXJS LÀ GÌ

Rxjs là gì

Rxjs hoặc Reactive sầu Extension dành riêng cho javascript là một trong những thư viện để gia công vấn đề cùng với mẫu Reactive sầu của Observables và Obhệ thống được áp dụng thoáng rộng để xử lý luồng dữ liệu tiếp tục vạc ra tài liệu mang lại trình quan lại cạnh bên phản nghịch ứng theo các sự khiếu nại và đổi khác này.

Bạn đang xem: Rxjs là gì

Chủ yếu đuối làm việc với mã đồng bộ / không đồng nhất trên javascript.

Rxjs là một cổng ban bố chủng loại tất cả sẵn cho những ngôn từ không giống (C ++, Java…).

Tại sao sử dụng Rxjs

Theo chủ ý ​​của tớ, ngẫu nhiên công ty cải cách và phát triển làm sao ao ước thao tác với thao tác với loại và chuỗi tài liệu đề nghị suy nghĩ Việc học Rxjs, nhất là đối với các bên trở nên tân tiến javascript vày Rxjs là một technology hot cùng rất nhiều đơn vị cùng nhóm đã tuyển dụng với thử dùng như thế để giành được các bước bên phát triển website.

Dưới đấy là một số điểm tôi thấy đúng sau thời điểm thực hiện Rxjs một thời gian:

Chạy cả mã đồng hóa và không đồng nhất Các đối tượng lặp lại cùng Promise rất có thể được sử dụng nhỏng vào Rxjs Phát ra nhiều sự khiếu nại theo thời gian Một tập phù hợp mập những toán thù tử để gia công câu hỏi cùng với những đẳng cấp tài liệu chuẩn chỉnh Quan sát rất nhiều đối tượng và phản ứng Lúc gồm biến đổi

Và Tài liệu bằng lòng mang đến Rxjs mang lại javascript rxjs.dev

Rxjs rất có thể quan tiền sát được

Một đối tượng hoàn toàn có thể quan lại tiếp giáp là 1 trong loại đối tượng người dùng đặc biệt vạc ra một chuỗi các sự kiện theo thời gian, nó đại diện cho một luồng tài liệu nhưng luồng tài liệu xong cùng với tâm trạng xong xuôi hoặc lỗi hoặc một trong những bọn chúng lúc được vạc ra, nó xong vòng đời của đối tượng có thể quan lại sát cùng trngơi nghỉ phải vô ích.

Đối với từng Observable yêu cầu có một trình quan tiền ngay cạnh, về cơ phiên bản (các) lệnh Call lại được thực thi Khi có thể quan tiền liền kề phân phát ra một quý giá bắt đầu cùng một lệnh Hotline lại hoàn chỉnh với lỗi để phản bội ứng cùng với tâm lý hoàn chỉnh hoặc tinh thần lỗi.

Theo khoác định, các Observables là nguội Có nghĩa là chúng sẽ không chạy cho tới khi chúng ta ĐK (đăng ký) tối thiểu một người xem vào nó để nó hoàn toàn có thể ban đầu nhấn một chuỗi dữ liệu từ bỏ Observable.

khi các bạn thao tác làm việc cùng với Rxjs phần lớn thời gian, các bạn sẽ tạo nên (tạo) những quý giá quan tiếp giáp trải qua sự trợ giúp của những toán tử hoàn toàn có thể tạo nên một hoàn toàn có thể quan lại giáp cho một vận động cụ thể, ví dụ, tạo ra toàn bộ các cực hiếm mảng thứu tự bằng cách áp dụng từ tân oán tử.

Dưới đó là sơ đồ vật cho thấy phương pháp một Observable hoạt động với nhiều chi tiết hơn.


*

Hãy tạo ra Observable đầu tiên của bọn họ, tôi sẽ sử dụng một vận dụng Nodejs cơ phiên bản mà Rxjs cũng chuyển động trên Browser.

const rxjs = require("rxjs");//Create an Observable instance const myObservable = new rxjs.Observable(subscriber => //TODO: You can Fetch data from the Server API //Emit a value(s) subscriber.next("Hello"); subscriber.next("Hello"); subscriber.next(15); subscriber.next( id: 1 ); //Finish Execution Successfully subscriber.complete() //Or you can gọi error if there are any errors //subscriber.error("Err, No one should use Jquery!"););

Như tôi đã nói cùng với chúng ta trước đó, Các quan lại gần cạnh đã LẠNH đề nghị bọn chúng sẽ không còn chạy, cho đến Lúc Shop chúng tôi ĐK tối thiểu một người quan sát vào nó.

//We subscribe khổng lồ myObservable and that"s what an obVPS looks like myObservable.subscribe( v => console.log("Next: ", v), err => console.error(err), () => console.log("Completed Successfully!"));

Cái thiết bị nhì là hàm Điện thoại tư vấn lại lỗi bắt lỗi ví như tất cả ngẫu nhiên được phân phát ra.

Xem thêm: Rigger Là Gì - Rigger Nghĩa Là Gì Trong Tiếng Việt

tác dụng ở đầu cuối là nhằm thừa nhận tâm trạng hoàn hảo để nó có thể bội phản ứng với điều đó.

Lưu ý: tinh thần hoàn thành & lỗi chỉ hoàn toàn có thể được phân phát ra một lượt bên phía trong một tư tưởng hoàn toàn có thể quan liêu ngay cạnh được cùng tất cả mã lộ diện sau lệnh Hotline lỗi () hoặc chấm dứt () sẽ ảnh hưởng bỏ lỡ với không được thực thi lấy nó có tác dụng tự khóa trả về

Bây giờ đồng hồ chạy ứng dụng, bạn sẽ nhận thấy một cái nào đấy giống như như:

Next: HelloNext: HelloNext: 15Next: id: 1 Next: After two secondsCompleted Successfully!

Chủ đề Rxjs

Đối tượng là 1 trong các loại rất có thể quan liêu liền kề đặc biệt quan trọng, điểm khác biệt chính là Đối tượng hoàn toàn có thể đóng cả hai sứ mệnh Người quan liêu liền kề và Người quan gần kề cùng một thời điểm, có nghĩa là nó rất có thể vạc ra những sự khiếu nại cùng trạng thái (Có thể quan liêu sát) cùng đồng thời lắng nghe bọn chúng (Người quan tiền sát).

Dưới đây là một vài biệt lập ở trung tâm Đối tượng và Đối tượng hoàn toàn có thể quan liêu gần kề.

Đối tượng đang Hot chúng chạy ngay sau thời điểm bắt đầu bọn chúng trong những lúc Observable cần ít nhất một tín đồ ĐK để ban đầu phát ra những quý giá. Các đơn vị không tồn tại phạm vi chức năng nhỏng một Observable, cho phép chúng ta vào vai trò của Observable để phạt ra những quý hiếm và tinh thần và lắng tai các sự kiện kia với bốn phương pháp là ObVPS. Tất cả những Đối tượng quan lại tiếp giáp hầu như chia sẻ và một toàn cảnh tiến hành, vì vậy nỗ lực bởi tạo thành một phiên phiên bản new của định nghĩa cũng có thể quan liêu gần kề mọi khi Shop chúng tôi ĐK Đối tượng, đối tượng người tiêu dùng đang share và một khái niệm cùng với tất cả những người ĐK (quan tiền tiếp giáp viên). BehaviorSubject nó cung ứng cho bạn kỹ năng hướng dẫn và chỉ định một cực hiếm thuở đầu sẽ được vạc ra mang lại tất cả những người dân quan liền kề ban sơ khi bọn họ ĐK. ReplaySubject nó hỗ trợ cho chính mình kỹ năng lấy toàn bộ những quý hiếm được phân phát ra trước kia trước lúc người xem ĐK vào luồng (BehaviorSubject). AsyncSubject nó có thể chấp nhận được chúng ta chạy mã Async với 1 bộ lập kế hoạch.

const mySubject = new rxjs.Subject();mySubject.next("This value is pushed before subject runs");mySubject.next("THIS WILL NOT BE RECEIVED");mySubject.subscribe( v => console.log("Next: ", v), err => console.error(err), () => console.log("Completed Successfully!"));mySubject.next("this value gets received");

Next: this value gets received

Và sẽ là cơ hội các các loại Chủ thể khác có lợi.

Rxjs và nbsp; Chủ đề Hành vi

BehaviorSubjects có thể chấp nhận được bạn chỉ định một quý giá ban đầu được phạt ra đến toàn bộ những người dân quan gần kề thuở đầu Lúc chúng ta ĐK chủ thể lần đầu tiên.

const mySubject = new rxjs.BehaviorSubject("INITIAL");mySubject.subscribe( v => console.log("Next: ", v), err => console.error(err), () => console.log("Completed Successfully!"));mySubject.next("this value gets received");

Next: INITIALNext: this value gets received

Rxjs và nbsp; Chủ đề tái phát

ReplaySubject được cho phép chúng ta nhấn toàn bộ các quý giá được phát ra trước lúc người quan sát đăng ký luồng, Tức là bạn cũng có thể khởi sinh sản ReplaySubject của mình và phạt ra bố cực hiếm sau đó bạn đăng ký một người quan sát vào đối tượng người dùng, người quan sát này lúc ĐK thì vẫn nhận được toàn bộ tía giá trị được vạc ra trước đó theo lắp thêm từ của việc bắt chước.

//Initialize a ReplaySubject const mySubject = new rxjs.ReplaySubject();//We emit two values before we subscribe lớn the streammySubject.next("This value is pushed before subject runs");mySubject.next("THIS IS RECEIVED");mySubject.subscribe( v => console.log("Next: ", v), err => console.error(err), () => console.log("Completed Successfully!"));mySubject.next("this value gets received");

Next: This value is pushed before subject runsNext: THIS IS RECEIVEDNext: this value gets received

Toán tử và nbsp; Rxjs

Các toán thù tử là mặt đường của thư viện Rxjs do bọn chúng có thể chấp nhận được dễ dãi tạo những tân oán tử rất có thể quan lại tiếp giáp được cho những toán thù tử rõ ràng mà không đề nghị xác định toàn cục ngắn gọn xúc tích có thể quan liêu gần kề của riêng rẽ chúng ta.

Vì vậy, ví dụ: các bạn có một Mảng tài liệu và bạn có nhu cầu phạt ra tất cả những mục theo lắp thêm từ bỏ bằng cách áp dụng một rất có thể quan tiền liền kề được, bạn cũng có thể đạt được vấn đề đó bằng phương pháp sử dụng tân oán tử from rước một đối tượng hoàn toàn có thể tái diễn bất kỳ thiết bị gì nlỗi Promise, Array, string… với trả về một Observable .

const rxjs = require("rxjs");const myData = <"hi", 15, "icecream">;const myDataObservable = rxjs.from(myData).subscribe((v) => console.log("Next: ",myData));

Next: hiNext: 15Next: icecream

quý khách hàng rất có thể chất vấn danh sách không thiếu thốn các đơn vị khai thác bao gồm sẵn với những ví dụ cụ thể và đọc tin về từng nhà khai quật trên Tài liệu

Nhà điều hành hứa giờ

Tân oán tử Timer được sử dụng để chế tác một Observable phân phát ra tâm lý sau đó 1 khoảng tầm thời gian được chỉ định bằng mili giây.

//We create a timer observable & we pipe the emited value to lớn a custom value using pipe method//We also use mapTo operator to maps what ever emitted value khổng lồ a custom value we specifyconst timer1 = rxjs.timer(1000).pipe(mapTo("hi"));//And make sure lớn subscribe lớn ittimer1.subscribe( v => console.log("Next: ", v), err => console.error(err), () => console.log("Completed Successfully!"));

//Afet 1 second Next: hi

Nhà quản lý Concat

Tân oán tử concat được sử dụng để nối nhì hoặc các Quan ngay cạnh với nhau vẫn chạy đa số Quan tiếp giáp lẻ tẻ sau khi một quan liêu gần cạnh trước khi kết thúc, vày vậy nó đã ngóng hoàn thành một hoàn toàn có thể quan liêu tiếp giáp nhằm đưa sang quan gần cạnh tiếp theo.

const timer1 = rxjs.timer(1000).pipe(mapTo("hi"));const timer2 = rxjs.timer(2000).pipe(mapTo("hello"));rxjs .concat(timer1, timer2) .subscribe( v => console.log("Next: ", v), err => console.error(err), () => console.log("Completed Successfully!") );

//After one second hi//Wait for timer1 lớn complete then after two seconds hello

Toán tử bản vật dụng có thể ánh xạ ngẫu nhiên cực hiếm như thế nào được phạt ra thành một giá trị khác y như mapT Để hoạt động, phần đa toán thù tử kia chỉ làm việc tài liệu trải qua phương thức ống mà người ta không tạo ra một Observable bắt đầu.

Từ ví dụ trước về timer1 & timer2, bạn có thể ánh xạ cực hiếm new được phạt ra trường đoản cú Observable phối kết hợp new được sinh sản thành Đối tượng tùy chỉnh sửa chữa thay thế.

//Timers generation here...//We map each emitted value khổng lồ a new object with thắng lợi property holding the actual value //và new added exists property set to lớn true.rxjs .concat(timer1, timer2) .pipe(map(v => ( item: v, exists: true ))) .subscribe( v => console.log("Next: ", v), err => console.error(err), () => console.log("Completed Successfully!") );

//After one second item: "hi", exists: true//Wait for timer1 lớn complete then after two seconds item: "hello", exists: true

Leave a Reply

Your email address will not be published. Required fields are marked *