2017-07-08 2 views
0

Ich habe zwei Observablen verketten:Wie Daten aus zwei Observablen

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; 
... 
} 

Ich brauche Liste von Autos aus carObservable bekommen und es zu profileObservable setzen (Liste des Autos setzen) zu profilieren, wie dies innerhalb Methode:

@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( 

    */ 

} 

Antwort

0

Haben Sie versucht, den concat-Operator, ich weiß nicht, ob ich recht gut Ihren Anwendungsfall zu verstehen, aber für den Fall, müssen Sie nur durch die Liste des Autos gehen und dann Profils, nur concat einer nach den anderen

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

Wenn Sie in der RxJava Welt initiieren möchten, schauen Sie hier https://github.com/politrons/reactive

Verwandte Themen