Rxjs và reactive programming
RxSwift là một trong những thư viện cho phép họ sử dụng Swift một cách khác nhau. Với tủ sách này, thiết kế bất đồng bộ trở đề xuất dễ tiến hành hơn và dễ gọi hơn. Nó chất nhận được bạn xây dựng những ứng dụng có kiến trúc khít sát và rất tốt hơn.
Bạn đang xem: Rxjs và reactive programming



Observable phát ra 3 nhiều loại event:
.next(): là event mang giá trị tài liệu mới nhất. Đây đó là các Observers nhận các giá trị giữ lại liệu..error: Observable sẽ xong xuôi với lỗi và không phát ra event..completed: là event xong xuôi của chỗi sự kiện, tức là sẽ ko phát ra bất cứ event nào nữa.2. Cách tạo nên một ObservableSau đây chúng ta sẽ thuộc nhau mày mò cách tạo nên một Observable
2.1 .just()
Trong RxSwift, với thủ tục .just() đã giúp họ tạo ra một Observable phát ra duy nhất một event cùng terminate ngay lập tức.
Xem thêm: Tứ Hành Xung Tuổi Thân Gồm Những Tuổi Nào? Tuổi Thân Hợp Khắc Tuổi Gì?
let disposeBag = DisposeBag() let observable = Observable.just("this is element") observable.subscribe element in print(element) .disposed(by: disposeBag)Result:
next(this is element) completed
2.2 .of()
Với phương thức .of() bọn họ sẽ tạo thành một Observable xuất phát điểm từ 1 chuỗi các bộ phận cho trước. Kiểu tài liệu của Observable là kiểu dữ liệu của dữ liệu truyển vào. Các thành phần sẽ truyền vào trong 1 cách tuần tự, sau khi hoàn thành sẽ tự động hóa terminate.let disposeBag = DisposeBag() let observable = Observable.of(1, 9, 19, 5) observable.subscribe element in print(element) .disposed(by: disposeBag)Result:
next(1) next(9) next(19) next(5) completed
2.3 .from()
Với cách tiến hành .from( ) cho phép khởi sinh sản một Observable với một chuỗi các bộ phận trong một mảng đến trước. Kiểu tài liệu của Observable đã là kiểu tài liệu của các phần tử trong mảng. Các bộ phận sẽ thứu tự được emit theo sản phẩm tự trong mảng, kế tiếp Observable đã terminate.let array = <1, 5, 8, 9, 10, 4> let disposeBag = DisposeBag() let observable = Observable.from(array) observable.subscribe element in print(element) .disposed(by: disposeBag)Result:
next(1) next(5) next(8) next(9) next(10) next(4) completed
2.4 .range(start: , count: )
.range(start: , count: ) chất nhận được tạo ra một Observable với mức giá trị thuở đầu (start) và số lượng các element tuần tự được tạo thành (count), kế tiếp sẽ terminate.let disposeBag = DisposeBag() let observable = Observable.range(start: 1, count: 5) observable.subscribe element in print(element) .disposed(by: disposeBag)Result:
next(1) next(2) next(3) next(4) next(5) completed
2.5 .empty()
Phương thức .empty( ) chất nhận được tạo ra một Observable nhưng mà không có bất kỳ element như thế nào cả. Observable đang chỉ emit ra độc nhất một event .completed nhằm terminate.Xem thêm: Top 10 Sạc Dự Phòng Nào Tốt Nhất Hiện Nay, +15 Sạc Pin Dự Phòng Tốt Nhất (2021)
let disposeBag = DisposeBag() let observable = ObservableVoid>.empty() observable.subscribe( onNext: element in print(element) , onError: error in print(error) , onCompleted: print("onCompleted") , onDisposed: print("onDisposed") ) .disposed(by: disposeBag)Result:
onCompleted onDisposed
2.6 .never()
Giống với cách thức .empty(), cách làm .never() cho phép tạo ra một Observable không có ngẫu nhiên element làm sao cả dẫu vậy khác với .empty() làm việc chỗ, cách làm .never() đã không khi nào terminate.let disposeBag = DisposeBag() let observable = ObservableVoid>.never() observable.subscribe( onNext: element in print(element) , onError: error in print(error) , onCompleted: print("onCompleted") ) .disposed(by: disposeBag)Result:
// Not emit anything3. Tổng KếtTrong nội dung bài viết này chúng ta đã cùng nhau tò mò về Observable và các cách tạo ra một Observable. Để hiểu rõ hơn các chúng ta có thể tìm hiểu những tài liệu dưới đây: