Supposons que vous ayez:
result = Observable.zip(sourceA, sourceB, sourceC)
Il suffit d'ajouter un .doOnNext()
sur chacune des sources pour se connecter ce qu'ils émettent (ou au lieu de doOnNext
, abonnez-vous à chacun). Par exemple:
result = Observable.zip(sourceA.doOnNext(/*logging...*/),
sourceB.doOnNext(/*logging...*/),
sourceC.doOnNext(/*logging...*/))
ce qui se passe probablement est que l'une de ces sources n'émet pas à la même fréquence que les autres. zip
doit être utilisé lorsque vous savez strictement que toutes les sources émettent des événements au même rythme/fréquence. Vous pouvez essayer d'utiliser combineLatest
. La différence entre les deux est:
- zip: le retour Observable n'émet le nième élément 'combinaison' que lorsque tous les n-ième éléments des sources ont été émis. Voir un diagram. CombineLatest: l'objet Observable renvoyé émet un élément 'combinaison' chaque fois que l'une de ses sources émet un élément. Voir un diagram.