RxSwift: Bài 1 - Observable và Just, Of, From
RxSwift
20
swift
68
Male avatar

Bùi Khánh Duy viết ngày 30/06/2018

RxSwift: Bài 1 - Observable và Just, Of, From

=====
Updated ngày 30/06

Updated một chút: Vì những bất tiện và không rõ ràng về thông tin của kipalog, mình mới dọn về nhà mới ở đây, thoải mái, đẹp đẽ rõ ràng hơn kipalog. Mong các bạn có thể theo dõi tại trang web của mình để cập nhật thêm nha

Mình mới viết một loạt bài về chủ đề Clean Architecture và Service Locator. Các bạn có thể theo dõi.
Page trên facebook ở đây: ở đây

=====
Đôi lời: Mình viết loạt bài này không phải là loạt bài tut, nó chỉ là những kiến thức mình tự hiểu và tự take note dưới góc nhìn của một newbie. Hiện giờ tài liệu RxSwift khá mơ hồ và đọc rất thiếu chiều sâu. Do đó, mình muốn viết 1 loạt bài cho những bạn mới có 1 cái gọi là tài liệu kiến thức căn bản, VÀ QUAN TRỌNG NHẤT LÀ MÌNH VIẾT BÀI NÀY CHO BẢN THÂN MÌNH ÔN LẠI KIẾN THỨC.

Cho nên những anh chị level cao có thể ignore loạt bài của mình hoặc giúp mình xây dựng nó tốt hơn thông qua các góp ý. Mình xin cảm ơn.

Trong bài này, mình sẽ không nói Observables là gì hoặc cái khái niệm cơ bản của RxSwift vì mình thấy phần này, google có rất nhiều và rất đầy đủ, các bạn có thể search ở đó. Mình sẽ giới thiệu về just, of, from của Observables. Trước hết, ta tạo 1 function sau:

alt text

Tiếp theo, trong viewDidLoad, các bạn sử dụng lại hàm này, với define 1 vài constants, như sau:

alt text

Ở trên ta đã tạo một observable sequence của kiểu Int và sử dụng method "just" với 1 integer.

1. JUST

Ngay cả cái tên just đã nói rõ, method này sẽ tạo ra 1 observable sequence mà chỉ chứa duy nhất 1 phần tử. Trong Rx thì methods được gọi là operators (toán tử) nhiều hơn.

Option-click vào biến observable, bạn sẽ thấy là nó hiển thị là observable của kiểu Int, duy nhất 1 phần tử.

alt text

Nếu bạn truyền vào một mảng, nó cũng hiển thị kiểu mảng. Nghe có vẻ hơi lạ nhưng mà nói mảng là 1 elements, ko phải nói nội dung của nó.

2. OF
Về phần of này, mình sẽ tạo ra 2 cái observable như sau:

alt text

Đối với observable1, ta cứ nghĩ nó sẽ trả về dạng Array nhưng thực tế không phải vậy, nó sẽ trả về dạng Int bởi vì of nhận tham số variadic.

Option-click vào nó, bạn sẽ thấy cụ thể: (_ elements: Int ...)
alt text

Nếu bạn muốn truyền vào 1 array thì làm như observable2, rồi truyền mảng vào cho nó. Bây giờ ta run để print cả hai observable để xem cụ thể.
alt text

Bạn để ý sẽ thấy observable1 là Swift.Int, nó là observable của các giá trị kiểu Int, còn observable2 là Swift.Array nó là observable của 1 mảng. Bây giờ điều tiếp theo là tạo các observable của các phần tử trong mảng đó? From sẽ giải quyết vấn đề đó.

Bên lề 1 chút, như mình đã nói, just cũng có thế dùng để tạo 1 observable của 1 mảng vào mặc dù nó hơi kì kì.

3. FROM
From tạo ra 1 observable của các phần tử trong một mảng. Khi Option-click, bạn sẽ thấy nó hiển thị kiểu Int, chứ ko phải [Int]
alt text

Và From operator chỉ nhận duy nhất Array, các kiểu khác đều không hợp lệ.

Như vậy mình đã giới thiệu xong bài 1, console của ta hiện giờ khá đơn điệu do ta chưa print gì nhiều. Qua phần sau ta sẽ tiếp tục subscribe.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

Bùi Khánh Duy

29 bài viết.
11 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
4 0
Autolayout và lifecycle trong IOS ===== Updated ngày 30/06 Updated một chút: Vì những bất tiện và không rõ ràng về thông tin của kipalog, mình mớ...
Bùi Khánh Duy viết 4 tháng trước
4 0
Male avatar
2 3
RxSwift: Bài 2 Subscribing to observables ===== Updated ngày 30/06 Updated một chút: Vì những bất tiện và không rõ ràng về thông tin của kipalog,...
Bùi Khánh Duy viết 6 tháng trước
2 3
Male avatar
2 0
RxSwift: Bài 3 Disposing and terminating ===== Updated ngày 30/06 Updated một chút: Vì những bất tiện và không rõ ràng về thông tin của kipalog, ...
Bùi Khánh Duy viết 6 tháng trước
2 0
Bài viết liên quan
Male avatar
0 0
RxSwift: Bài 6: RxCocoa (Part 4) Units ===== Updated ngày 30/06 Updated một chút: Vì những bất tiện và không rõ ràng về thông tin của kipalog, mì...
Bùi Khánh Duy viết 6 tháng trước
0 0
Male avatar
0 0
RxSwift: Bài 6: RxCocoa (Part 5) Disposing with RxCocoa ===== Updated ngày 30/06 Updated một chút: Vì những bất tiện và không rõ ràng về thông t...
Bùi Khánh Duy viết 6 tháng trước
0 0
Male avatar
0 0
RxSwift: Bài 5 Observables and Subjects in Practice (Part 1) ===== Updated ngày 30/06 Updated một chút: Vì những bất tiện và không rõ ràng về th...
Bùi Khánh Duy viết 6 tháng trước
0 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
29 bài viết.
11 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!