Trang chủ

Giới thiệu

Combine sinh ra để làm gì, và phần nào đã bị thay thế

Combine là framework của Apple dành cho những giá trị đến theo thời gian: một phản hồi mạng, nội dung một ô nhập liệu, một thông báo, một nhịp đồng hồ. Thay vì mỗi nguồn một callback, mọi nguồn đều trở thành một Publisher, và các publisher ghép được với nhau.

let cancellable = NotificationCenter.default
    .publisher(for: UITextField.textDidChangeNotification)
    .compactMap { ($0.object as? UITextField)?.text }
    .debounce(for: .milliseconds(300), scheduler: RunLoop.main)
    .removeDuplicates()
    .sink { query in search(query) }

Bốn toán tử thay cho một bộ đếm giờ debounce, một phép kiểm tra “có đổi không” và một delegate.

Cảnh báo

Phần lớn lý do Combine ra đời nay đã nằm sẵn trong ngôn ngữ. async/await xử lý việc chạy một lần tốt hơn Future, còn AsyncSequence xử lý luồng dữ liệu với ít bộ máy hơn hẳn. Hãy dùng Combine khi bạn thật sự cần vốn từ vựng toán tử của nó — trộn luồng, ghép giá trị mới nhất, backpressure — chứ không phải theo quán tính.

Sách này nói về gì

Đây là chương mẫu. Phần nội dung đầy đủ vẫn đang được viết.