J'ai regardé le nouveau rx java 2 et je ne suis pas tout à fait sûr de comprendre l'idée de backpressureplus ...
Je sais que nous avons Observablequi n'a pas de backpressuresoutien et Flowablequi en a.
Donc, basé sur l'exemple, disons que j'ai flowableavec interval:
Flowable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
// do smth
}
});
Cela va planter après environ 128 valeurs, et c'est assez évident que je consomme plus lentement que d'obtenir des articles.
Mais alors nous avons la même chose avec Observable
Observable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
// do smth
}
});
Cela ne plantera pas du tout, même si je tarde à le consommer, cela fonctionne toujours. Pour faire du Flowabletravail, disons que je mets un onBackpressureDropopérateur, le crash est parti mais toutes les valeurs ne sont pas non plus émises.
Donc, la question de base à laquelle je ne trouve pas de réponse actuellement dans ma tête est pourquoi devrais-je me soucier du backpressuremoment où je peux utiliser plain quand Observablemême recevoir toutes les valeurs sans gérer le buffer? Ou peut-être de l'autre côté, quels avantages backpressureme procurent la gestion et la gestion de la consommation?

