2017-07-08 1 views
0

J'ai deux observables:Comment concaténer des données de deux observables

Observable <Profile> profileObservable = briteDatabase.createQuery(UserMapper.Table.NAME, sql, String.valueOf(userId)).mapToOneOrDefault(UserMapper.MAPPER, null); 
Observable <List<Car>> carObservable = briteDatabase.createQuery(CarMapper.Table.NAME, sql, String.valueOf(userId)).mapToOneOrDefault(CarMapper.MAPPER, null); 

public class Profile { 
int id; 
String name; 
ArrayList<Car> car; 
... 
} 

public class Car { 
int id; 
String brand; 
... 
} 

Je dois obtenir la liste des voitures de carObservable et de le mettre à profileObservable (mettre la liste des voitures au profil), à l'intérieur méthode comme ceci:

@Override 
public Observable<Profile> getProfile(String userId) { 
    String sql = String.format("SELECT %s FROM %s WHERE %s=?", TextUtils.join(",", UserMapper.PROJECTION), UserMapper.Table.NAME, UserMapper.Columns.ID); 

    Observable <Profile> profileObservable = briteDatabase.createQuery(UserMapper.Table.NAME, sql, String.valueOf(userId)).mapToOneOrDefault(UserMapper.MAPPER, null); 

    Observable <List<Car>> carsObservable = getCars(String userId); 

    /* 
    Some important method to concat and return Observable <Profile>. I'm only beginner at RxJava( 

    */ 

} 

Répondre

0

Avez-vous essayé l'opérateur concat, je ne sais pas si je comprends bien votre cas d'utilisation, mais dans le cas où vous avez juste besoin de passer par la liste des voitures et profil, juste concat un après l'autre

@Test 
public void testContact() { 
    Observable.concat(Observable.just("Hello"), 
         Observable.just("reactive"), 
         Observable.just("world")) 
      .subscribe(System.out::println); 
} 

Si vous voulez vous initier au monde RxJava, jetez un oeil ici https://github.com/politrons/reactive