私はRxJavaを初めて使用しています。RxJava:遅れてObservableを返す
1.
は、私は秒速1で図形を描くと、その形状で観察を返す必要がサービスを提供しています。それは、要求後1秒後に形状を返すことを意味します。遅滞なく、それは動作します。タイマーを使うように言われましたが、実装に問題があります。
私はそのような何かを使用しようとしましたが、それは何も返しません:
public Observable<PaintedCircle> paint(Shape shape) {
return Observable
.timer(1, TimeUnit.SECONDS)
.flatMap(x -> Observable.just(new PaintedCircle(shape.getSize())));
}
私はflatMap
せずにそれを行うと、それはすぐにオブジェクトを返します。
マイプロデューサは、形状オブジェクト(丸および四角)のいくつかの量のリストを生成します。私はあまりにも小さな円を投げ捨て、形をペイント(最初の質問に記載されているサービス)し、形を「箱」に入れなければなりません。その後、各ボックスのすべての図形をコンソールに印刷する必要があります。
質問:共通のストリームで行うことはできますか?どうやって?
私はこのような流れを始めたが、上に行くために助けが必要:
Producer producer = new Producer();
Observable.from(producer.produceShapes(20))
.filter(shape -> shape instanceof Square || shape instanceof Circle && shape.getSize() > CIRCLE_MIN_SIZE)
.flatMap(shape -> shape.getPaintingService().paint(shape));
// .subscribe(System.out::print);
}
、ありがとう、あなたが2番目の質問たくさんで私を助けたために5つの要素のリスト内の項目をバッファリングすることができます!最初の質問について:サービスが遅れて(この場合は1秒後に)私に価値を与えることを望みます。 –
これは、私のメインストリームからサークルにペイントするサービスを求めています。 –