Rx java 如何使用RxScala/RxJava从单个计算步骤中构建一个可观察的模型?

Rx java 如何使用RxScala/RxJava从单个计算步骤中构建一个可观察的模型?,rx-java,rx-scala,Rx Java,Rx Scala,我目前拥有以下代码: def method(): Future[State] = Future { // some processing State.Completed } 但现在我注意到我实际上想“发布”一组中间状态: def method(): Observable[State] = ? { // some processing publish State.State1 // some processing publish State.State2 // som

我目前拥有以下代码:

def method(): Future[State] = Future {
  // some processing
  State.Completed
}
但现在我注意到我实际上想“发布”一组中间状态:

def method(): Observable[State] = ? {
  // some processing
  publish State.State1
  // some processing
  publish State.State2
  // some processing
  publish State.Completed
}
有没有一个简单的方法来实现这一点?虽然我已经将其描述为3状态转换,但实际上我可能经历更多或更少的转换。我希望从“未来”到“可观察”的更改意味着我当前的“命令式”代码的更改最少

此外,我希望这些“事件”能够实时发布,而不仅仅是在从方法返回时发布。

在以下情况下使用并仅推送下一个状态:

Observable stateSource=Observable.create(发射器->{
//一些加工
emitter.onNext(State.State1);
//一些加工
emitter.onNext(State.State2);
//一些加工
emitter.onNext(State.Completed);
//没有进一步的状态变化
emitter.onComplete();
});