Observables và Reactive Extensions
Các observable giúp chúng ta quản lý dữ liệu không đồng bộ, chẳng hạn như dữ liệu đến từ một back-end service. Observable đối xử với các event như một collection. Chúng ta có thể nghĩ về một observable như một mảng mà các mục đến không đồng bộ theo thời gian. Observable là tính năng được đề xuất cho ES2016, một phiên bản tiếp theo của Javascript. Để sử dụng các observable lúc này, Angular sử dụng một thư viện bên thứ ba gọi là reactive extensions. Đừng nhầm lẫn điều này với React, đó là một điều hoàn toàn khác. Các observable được sử dụng trong chính Angular, bao gồm hệ thống sự kiện của Angular và Http clients service, đó là lý do mà chúng ta đề cập đến chúng ở đây. Các observable cho phép chúng ta thao tác trên tập hợp các sự kiện với các operator. Operator là các phương thức trên các observables để tạo nên những observable mới. Mỗi operator biến đổi các nguồn observable theo một cách nào đó. Các operator không chờ đợi tất cả các giá trị trả về và xử lý cùng một lúc. Thay vào đó các operator trên các observable xử lý mỗi giá trị chừng nào nó được phát ra. Một số ví dụ của operator bao gồm map, filter, take, and merge. Các chuỗi dữ liệu có thể có nhiều hình thức, chẳng hạn như response từ back-end web service, một tập hợp của hệ thống thông báo hoặc hệ thống các sự kiện chẳng hạn như input của người dùng. Trong minh họa dưới đây, thể hiện opertator map biến đổi chuỗi dữ liệu 1,2,3 thành 10,20,30.
Bạn có thể đã làm việc với dữ liệu không đồng bộ trong Javascript trước đây bằng cách sử dụng Promise.Observable thì khác với Promise trong một số cách.
Promise
Observable
Trả về một giá trị duy nhất trong tương lai
Không lazy
Không thể hủy
|
Phát ra nhiều giá trị không đông bộ theo thời gian
Lazy
Có thể hủy đăng ký
Hỗ trợ map, filter, reduce, v.v..
|
Tuy nhiên bạn vẫn có thể sử dụng Promise thay vì Observable khi gọi Http trong Angular nếu bạn muốn, nhưng trong chương này chúng ta sẽ làm việc với Http thông qua các Observable.
Last updated