Rx java 获取flatMap后先前发出的项以清空Observable

Rx java 获取flatMap后先前发出的项以清空Observable,rx-java,Rx Java,我希望每个公司都有员工,然后将其保存在永久性存储中,因此我有以下代码: public Observable<Company> getCompanies() { return repository.getCompanies() .flatMap(new Func1<Company, Observable<Employee>>() { @Override publ

我希望每个公司都有员工,然后将其保存在永久性存储中,因此我有以下代码:

public Observable<Company> getCompanies() {
    return repository.getCompanies()
             .flatMap(new Func1<Company, Observable<Employee>>() {
                 @Override
                 public Observable<Employee> call(Company company) {
                     if (company.hasEmployees()) {
                        return repository.getEmployees(company);
                     } else {
                        return Observable.empty();
                     }
                 }
             }, new Func2<Company, Employee, Company>() {
                 @Override
                 public Company call(Company company, Employee employee) {
                     company.addEmployee(employee);
                     return company;
                 }
             }).doOnNext(save());
}

private Action1<Company> save() {
    //more code...
}
如您所见,并非所有公司都有员工,因此在某些情况下返回Observable.empty。这导致不会调用save,也不是所有的公司都被持久化


我怎样才能解决这个问题?我想存储所有的公司,而不仅仅是那些有员工的公司。在向公司填充员工后,必须调用save方法。

我找到了一个解决方案。现在,若公司并没有员工,则返回Observable.justCollections.emptyList,而不是Observable.empty。如有任何意见,将不胜感激