J'ai un événement click qui doit faire une requête réseau.L'abonnement RxJava2 n'est pas appelé lorsque le mappage observable est complétable
RxView.clicks(button)
.flatMapCompletable({ x -> networkCall() })
.subscribe(...)
Le clic est un observable.
networkCall
Renvoie une valeur acceptable.
Cependant le bloc à l'intérieur subscribe
n'est jamais appelé quand je tape le bouton.
J'ai aussi essayé
RxView.clicks(button)
.flatMap({ x -> networkCall().toObservable<Void>() })
.subscribe(...)
Comment puis-je obtenir ce travail afin que chaque fois que je tape sur le bouton, une demande de réseau est fait et est ensuite traitée dans le subscribe
.
EDIT:
Je ne l'ai pas fait les choses réseau pourtant si actuellement il est juste
public Completable networkCall() {
Completable.complete();
}
Il est garanti à remplir.
Comment remplacer l'abonnement? Je ne suis pas sûr, mais si vous venez de remplacer le 'onNext', cela pourrait ne pas fonctionner. Avez-vous également remplacé la fonction 'onComplete' avec votre abonné? – Christopher
En ce qui concerne les docs, je dirais aussi que flatmapCompletable n'est pas la bonne option pour vous: Mappe chaque élément de l'amont Observable en CompletableSources, s'abonne à eux et attend jusqu'à ce que l'amont et tous les CompletableSources se terminent. -> 'RxView.clicks' ne se termine pas du tout! http://reactivex.io/RxJava/javadoc/io/reactivex/Observable.html#flatMapCompletable-io.reactivex.functions.Function- – Christopher
@Christopher J'avais le sentiment que "flatmapCompletable" ne serait pas approprié, c'est pourquoi je a également essayé le deuxième bloc de code. J'ai surchargé 'onNext' et' onComplete' et juste ajouté des logs et des points d'arrêt dans ces méthodes et il ne frappe pas non plus. Cependant, même avec le second bloc de code, je suis toujours inquiet car cela pourrait mettre fin au flux lorsque 'onComplete' est appelé à partir de l'appel réseau. – SunnySydeUp