2016-09-12 20 views
6

tôi tạo ra một thể quan sát được bằng cách sử dụng đoạn mã sau:Làm cách nào để gửi tín hiệu tiếp theo theo cách thủ công đến một quan sát được trong RxSwift?

let disposeBag = DisposeBag() 

let myJust = { (element: String) -> Observable<String> in 
    return Observable.create { observer in 
     observer.on(.next(element)) 
     //observer.on(.completed) 
     return Disposables.create() 
    } 
} 

Những mã đã được viết bằng mã mẫu của RxSwift.

Nếu tôi tạo một khoảng trống có thể quan sát được như myJust. Và một thời gian sau đó, làm thế nào tôi có thể gửi giá trị bên cạnh myJust, như:

myJust("").on(.completed) 

Nhưng tôi nhận được lỗi sau:

error: value of type 'Observable<String>' has no member 'on' 

Trả lời

9

Bạn không thể. Observable s chỉ có thể được quan sát thấy. Nếu bạn muốn đẩy giá trị, bạn sẽ cần một Subject. A Subject là cả số ObservableObserver để nó có thể phát ra và nghe Sự kiện. Trong RxSwift bạn cũng có thể tạo ra một Variable mà bạn có thể ràng buộc một Observable.

dụ nhanh cho BehaviorSubject:

let subject = BehaviorSubject(value: 1) 
subject.on(.Next(2)) 
subject.on(.Next(3)) 
subject.on(.Completed) 
+0

điều khiển không thể làm điều đó cũng? Chỉ có đối tượng và biến có thể đẩy giá trị? – leizh00701

+0

Afaik, nó chỉ là chủ đề và các biến :) –

Các vấn đề liên quan