我有两个Flowables(一个给我VelocityNed
项目,另一个是我写来消耗第一个项目的项目(;问题是我不知道如何使第二个正确,因为我仍然不确定RxJava
我的可流动代码:
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));
//how to emit this
}
@Override public void onError(Throwable t) {
t.printStackTrace();
}
@Override public void onComplete() {
emitter.onComplete();
this.dispose();
}
});
}, BackpressureStrategy.BUFFER);
return flowable;
}
您不需要手动创建Flowable
来转换排放。你可以做originalFlowable.map(element -> { transform element however you want })
。
在您的情况下,它将类似于:
Flowable<Float> flowable = velocityNed.map(v -> {
(float)Math.sqrt(Math.pow(v.getDownMS(),2)+Math.pow(v.getEastMS(),2)+Math.pow(v.getNorthMS(),2));
})