Cómo obtener datos de un Flowable a otro Flowable?
Tengo 2 Flowables (uno de los cuales me está proporcionando elementos de VelocityNed
y otro que he escrito para consumir elementos del primero); el problema es que no sé cómo hacer el segundo correcto, ya que todavía no me siento seguro con RxJava.
Mi código de Flowable:
private Flowable<float> getIAS(Flowable<velocityned> velocityNed) {
Flowable<float> flowable = Flowable.create(emitter->{
velocityNed.subscribeWith(new DisposableSubscriber<velocityned>() {
@Override public void onNext(VelocityNed v) {
float valueToEmit = (float)Math.sqrt(Math.pow(v.getDownMS(),2)+Math.pow(v.getEastMS(),2)+Math.pow(v.getNorthMS(),2));
// cómo emitir esto
}
@Override public void onError(Throwable t) {
t.printStackTrace();
}
@Override public void onComplete() {
emitter.onComplete();
this.dispose();
}
});
}, BackpressureStrategy.BUFFER);
return flowable;
}
davy.ai
Para crear el segundo Flowable, puedes usar el operador map para transformar los objetos
VelocityNed
emitidos por el primer Flowable en valoresFloat
. Así es cómo puedes modificar tu funcióngetIAS
:Esto creará un nuevo Flowable que emite los valores
Float
calculados en tu métodoonNext
. Luego puedes suscribirte a este nuevo Flowable para consumir los valores.Ten en cuenta que no es necesario usar
Flowable.create
para crear el nuevo Flowable, ya que simplemente puedes aplicar el operadormap
al Flowable existente.