で複数のフラットマップの結果:ソートRXJava
public List<BatchResponse> getAllPosts() {
BatchRequests<BatchRequest> batch = new BatchRequests<>();
batch.add(new BatchRequest(RequestMethod.GET, "USERID/feed?limit=5"));
batch.add(new BatchRequest(RequestMethod.GET, "USERID2/feed?limit=5"));
List<BatchResponse> results = facebook.executeBatch(batch);
return results;
}
それから私は、コードを解析するRXJavaを使用しています:
Observable.defer(() -> Observable.just(getAllPosts()))
.subscribeOn(Schedulers.io())
.flatMap(Observable::from)
.map(BatchResponse::asResponseList)
.flatMap(Observable::from)
.map(rawPost -> DataObjectFactory.createPost(rawPost.toString()))
.toSortedList(MainActivity::compareModel)
.flatMap(Observable::from)
.map(Post::getMessage)
.subscribe(Log::v, Throwable::printStackTrace);
私は私の問題はそれだけですべての投稿をして並べ替えますが、それはありませんということですthis advice
private static Integer compareModel(Post car1, Post car2) {
return car1.getCreatedTime().compareTo(car2.getCreatedTime());
}
を使用して、それを並べ替えてみました1人のユーザーの投稿を並べ替えます(/ 1つのバッチリクエスト)。フラットマップのため、バッチリクエストが連続して実行されるためです。私はそれを解決する方法を知らない。