Sök…


Ställ in eftermontering och RxJava

Retrofit2 kommer med stöd för flera pluggbara exekveringsmekanismer, en av dem är RxJava.

För att använda eftermontering med RxJava måste du först lägga till Retrofit RxJava-adaptern till ditt projekt:

compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

måste du lägga till adaptern när du bygger din eftermonteringsinstans:

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://api.example.com")
    .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
    .build();

När du definierar API i ditt gränssnitt ska Observable vara Observable t.ex.:

public interface GitHubService {
  @GET("users/{user}/repos")
  Observable<List<Repo>> listRepos(@Path("user") String user);
}

Du kan också använda Single istället för Observable .

Gör seriella förfrågningar

RxJava är praktiskt när du gör seriell begäran. Om du vill använda resultatet från en begäran för att göra en annan kan du använda operatören flatMap :

api.getRepo(repoId).flatMap(repo -> api.getUser(repo.getOwnerId())
    .subscribe(/*do something with the result*/);

Skapa parallella förfrågningar

Du kan använda zip operatören för att göra begäran parallellt och kombinera resultaten t.ex.

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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow