J'ai un flux Observable, et je veux le convertir en Completable, comment pourrais-je le faire?
La manière la plus fluide consiste à utiliser Observable.ignoreElements()
.
Observable.just(1, 2, 3)
.ignoreElements()
Reconvertissez-le via toObservable
si nécessaire.
Vous pouvez faire quelque chose comme ci-dessous.
Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = Completable.fromObservable(observable);
Comme sur un observable, vous devrez vous abonner à completable
pour démarrer le processus asynchrone que Observable
encapsule.
Plus de détails peuvent être trouvés ici dans le Java doc pour la méthode .
Si je comprends bien, toutes ces solutions ne fonctionneront que si Observable appelle onComplete
, ce qui n'est pas suffisant si vous voulez que votre résultat Completable
se déclenche après le premier onNext
ou onError
, donc dans ce cas, je recommanderais ceci:
Observable<Integer> observable = Observable.just(1, 2, 3);
Completable completable = observable.firstOrError().ignoreElement()
Utilisez Completable.merge (YourObservable () ...
Vous pouvez utiliser Completable.fromObservable (xx). Cela fonctionne très bien sur mon projet.