mar*_*oop 8 reactive-programming system.reactive reactive-cocoa rx-java
给定Java对象上的任意字段,我想创建一个Observable,它将监视该字段,并在每次字段值更改时将新结果推送到Observer.ReactiveCocoa有一个名为RACObserve的宏,它似乎就是这样做的.
我想知道如何使用RxJava实现类似的功能.
例如,假设我有以下简单类:
public class Foo {
enum State {
Idle,
Ready,
Error
}
private State currentState = State.Idle;
//methods that can change currentState
}
Run Code Online (Sandbox Code Playgroud)
我想创建一个Observable<State>将每次更改值的新状态推送到Observer时currentState.
在ReactiveCocoa中,看起来我会写下类似的东西(请原谅我的伪Objective-C):
[RACObserve(self, currentState) subscribeNext:^(NSString *newState) {
NSLog(@"%@", newState);
}];
Run Code Online (Sandbox Code Playgroud)
我如何在RxJava中实现类似的功能?我想我可能需要在setter中包含对currentState的所有更改,但是我不清楚我应该在哪里调用Observable.create以及如何将currentState的更改提供给Observer.
由于您的问题标题包含“或 Rx.NET”,这是我的建议(我不知道 RxJava,您可能会找到类似的东西)。
您可能必须利用设置器中的某种机制。.NET 中的标准方法是使用INotifyPropertyChanged接口。然后通过触发事件,您可以IObservable<T>使用此流
创建一个Observable.FromEvent<TEvent, TArgs>()
您可以在此处找到您想要执行的操作 (.NET) 的一个非常好的示例。
(感谢罗布·丰塞萨-恩索尔)
| 归档时间: |
|
| 查看次数: |
870 次 |
| 最近记录: |