Observable là gì

     

RxSwift là 1 trong những thư viện mang lại phép chúng ta sử dụng Swift một biện pháp khác nhau. Với tủ sách này, thiết kế bất đồng bộ trở đề xuất dễ triển khai hơn cùng dễ phát âm hơn. Nó cho phép bạn xây dựng các ứng dụng gồm kiến trúc khít sát và rất chất lượng hơn.

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

*
Như các bạn đã biết, một device ( iphone, ipad, macbook, ...) đều phải sở hữu bộ CPU với không hề ít nhân và các luồng. Điều đó đòi hỏi, một chương trình tạo thành phải khai quật hết được sức mạnh của máy đó, nhằm cải thiện trải nghiệm áp dụng của người dùng. Trường đoản cú đó câu hỏi lập trình đa luồng ra đời nhằm mục tiêu chạy được các tác vụ ( khối code ) tuy vậy song. Với ngôn ngữ Swift bạn cũng có thể có khôn cùng nhiều cách để implement một vận dụng có các tác vụ sự không tương đồng bộ: NotificationCenter, Closure, Delegate Partern, Grand Central Dispatch cùng RxSwift.

*
Trong bài viết này bọn họ sẽ cùng nhau tìm hiểu về Observable và những cách tạo thành một Observable vào Swift. Let"s GOOOOO!!!

1. Observable là gì?Observable là một trong sequence, Observable sẽ nhả ( emit ) ra sự kiện ( sự kiện )Observableimmutable, tức thị mỗi khi dùng method trong bộ toolbox (map, flatmap, combine, merge, filter,…) thì sẽ khởi tạo ra 1 Observable new chứ không biến hóa Observable cũ.
*

Observable phân phát ra 3 một số loại event:

.next():event với giá trị dữ liệu mới nhất. Đây chính là các Observers nhận các giá trị giữ liệu..error: Observable sẽ xong xuôi với lỗi cùng không phân phát ra event..completed:event xong của chỗi sự kiện, có nghĩa là sẽ không phát ra bất cứ event làm sao nữa.2. Cách tạo nên một Observable

Sau đây họ sẽ thuộc nhau khám phá cách tạo nên một Observable

2.1 .just()

Trong RxSwift, với cách thức .just() vẫn giúp chúng ta tạo ra một Observable vạc ra duy nhất một event với terminate ngay lập tức.

Xem thêm: Bây Giờ Bên Nhật Là Mấy H Uyển Đổi Múi Giờ, Tokyo, Nhật Bản, Múi Giờ Nhật Bản

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 cách thức .of() họ sẽ tạo ra một Observable xuất phát điểm từ 1 chuỗi các bộ phận cho trước. Kiểu dữ 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 một cách tuần tự, sau khi xong 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 phương thức .from( ) được cho phép khởi sản xuất một Observable với một chuỗi các bộ phận trong một mảng đến trước. Kiểu dữ liệu của Observable đang là kiểu dữ liệu của các phần tử trong mảng. Các phần tử sẽ thứu tự được emit theo thứ tự vào mảng, kế tiếp Observable đang 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ị lúc đầu (start) và con số các element tuần từ bỏ được tạo nên (count), tiếp đến 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( ) có thể chấp nhận được tạo ra một Observable dẫu vậy không có bất kỳ element nào cả. Observable sẽ chỉ emit ra tốt nhất một event .completed để terminate.

Xem thêm: Cif, Fob, Cfr, Cnf Là Gì Trong Vận Chuyển Hàng Hóa, Những Thông Tin Quan Trọng Xoay Quanh Cnf

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 phương thức .empty(), cách tiến hành .never() cho phép tạo ra một Observable không có ngẫu nhiên element nào cả nhưng khác với .empty() sinh hoạt chỗ, phương thức .never() đang không lúc 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 mày mò về Observable và những cách tạo ra một Observable. Để nắm rõ hơn các chúng ta cũng có thể tìm hiểu những tài liệu bên dưới đây: