rx-java
Modernizacja i RxJava
Szukaj…
Skonfiguruj modernizację i RxJava
Retrofit2 posiada obsługę wielu podłączanych mechanizmów wykonawczych, jednym z nich jest RxJava.
Aby użyć modernizacji z RxJava, najpierw musisz dodać adapter Retrofit RxJava do swojego projektu:
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
następnie musisz dodać adapter podczas budowania instancji modernizacji:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.example.com")
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
W interfejsie użytkownika podczas definiowania interfejsu API typ zwracany powinien być Observable np .:
public interface GitHubService {
@GET("users/{user}/repos")
Observable<List<Repo>> listRepos(@Path("user") String user);
}
Możesz także użyć Single zamiast Observable .
Składanie żądań seryjnych
RxJava jest przydatny przy składaniu żądania szeregowego. Jeśli chcesz użyć wyniku z jednego żądania do utworzenia drugiego, możesz użyć operatora flatMap :
api.getRepo(repoId).flatMap(repo -> api.getUser(repo.getOwnerId())
.subscribe(/*do something with the result*/);
Składanie równoległych wniosków
Za pomocą operatora zip można równolegle wysyłać żądania i łączyć wyniki, np .:
Observable.zip(api.getRepo(repoId1), api.getRepo(repoId2), (repo1, repo2) ->
{
//here you can combine the results
}).subscribe(/*do something with the result*/);
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow