2017-08-22 6 views
0

J'ai quelques méthodesSwitchIfEmpty ne pas exécuter maybesource à l'intérieur

Maybe<Foo> getLocalFoo() 
Single<List<Foo>> getFooFromInternet() 

et que vous voulez vérifier l'article local et si elle est vide alors FETCH élément de réseau par exemple.

storage 
      .getLocalFoo() 
      .switchIfEmpty { network.getFooFromInternet().map { it[0] }.toMaybe() } 
      .subscribe({}, {}) 

Mais Seens que le code n'exécute pas network.getBarcodeTemplates() cette fonction.

Répondre

1

Essayez avec ( au lieu de { dans la ligne switchIfEmpty:

.switchIfEmpty (network.getFooFromInternet().map { it[0] }.toMaybe()) 
+0

Eh oui, c'était le problème. Je vous remercie. Et peut-être si vous aurez du temps libre, vous pouvez vérifier mon nouveau problème avec et puis https://stackoverflow.com/questions/45834989/andthen-executes-before-completable-finished – Sunstrike